Роботы-пылесосы Xiaomi давно стали неотъемлемой частью «умных домов», но для полноценной работы с ними через сторонние приложения (вроде Home Assistant, Yandex Alice или IoBroker) требуется уникальный токен устройства. Этот 32-значный ключ — своего рода «пароль» для взаимодействия с пылесосом через API, и его получение часто вызывает вопросы у пользователей.
В этой статье мы разберём все актуальные способы получения токена для моделей Xiaomi Vacuum (включая Mi Robot Vacuum, Viomi, Dreame и другие), от официальных методов через приложение Mi Home до альтернативных решений для опытных пользователей. Особое внимание уделим безопасности — почему нельзя делиться токеном в открытых источниках и как защитить свой аккаунт от взлома.
Если вы только начинаете осваивать «умную» технику или уже столкнулись с ошибками при интеграции пылесоса в сторонние системы — здесь вы найдёте пошаговые инструкции с иллюстрациями, таблицами совместимости и ответами на частые вопросы. Далее рассмотрим каждый метод подробно, начиная с самого простого.
1. Что такое токен пылесоса Xiaomi и зачем он нужен
Токен (или device token) — это уникальный идентификатор, который присваивается каждому устройству Xiaomi при первой привязке к аккаунту Mi Account. Он состоит из 32 символов (цифры и латинские буквы) и выглядит примерно так:
641a2d7d6d3a4b1c8e9f0a1b2c3d4e5f
Без этого ключа сторонние приложения и сервисы не смогут:
- 📱 Управлять пылесосом через голосовых помощников (Алиса, Google Assistant)
- 🔄 Автоматизировать уборку по расписанию вне Mi Home
- 📊 Получать данные о статусе устройства (заряд, ошибки, карты помещений)
- 🔧 Интегрировать пылесос в системы типа Home Assistant или Node-RED
Важно понимать, что токен — это не то же самое, что пароль от Wi-Fi или аккаунта Mi. Он привязан конкретно к устройству и не меняется при сбросе настроек пылесоса (если не отвязывать его от аккаунта). При этом токен даёт полный контроль над устройством, поэтому его нельзя передавать третьим лицам.
⚠️ Внимание: Если вы нашли в интернете «базу токенов Xiaomi» или кто-то предлагает купить токен — это мошенничество. Такие ключи либо нерабочие, либо связаны с украденными аккаунтами. Использование чужих токенов может привести к блокировке вашего устройства.
2. Способ 1: Получение токена через приложение Mi Home (официальный метод)
Самый простой и безопасный способ — извлечь токен непосредственно из официального приложения Mi Home. Для этого не нужны технические навыки, но потребуется:
- 📱 Смартфон с установленным Mi Home (версия не ниже 6.0)
- 🔌 Пылесос, привязанный к вашему аккаунту Mi Account
- 🔍 Доступ к файловой системе телефона (для Android)
Инструкция для Android:
- Откройте Mi Home и убедитесь, что пылесос подключён к сети.
- Перейдите в
Профиль → Настройки → Общие настройки → О программе. - Нажмите 5–7 раз на версию приложения, пока не появится надпись
Режим разработчика включён. - Вернитесь в
Настройки → Общие настройки— там появится новый пунктРежим разработчика. - Выберите
Локальная сеть (Mi IoT)и найдите в списке свой пылесос. Токен будет указан в полеToken.
Для iOS официального способа нет, но можно использовать обходной путь через MITM-прокси (рассмотрим в способе 4). Альтернатива — временно установить Mi Home на Android-устройство друга.
Пылесос подключён к Wi-Fi|Аккаунт Mi привязан к устройству|Версия Mi Home не ниже 6.0|На Android включена отладка по USB (если используете ADB)-->
⚠️ Внимание: После обновления Mi Home до версии 6.4.7 и выше токен в режиме разработчика может отображаться не полностью (последние символы заменены на звёздочки). В этом случае используйте способ 3 или 5.
3. Способ 2: Извлечение токена через файл mihome.db (Android)
Если режим разработчика не показывает токен или вы используете старую версию Mi Home, можно извлечь ключ напрямую из базы данных приложения. Для этого понадобится:
- 📱 Root-права или доступ к файлам через
ADB - 💻 Программа для просмотра SQLite-баз (например, DB Browser for SQLite)
Пошаговая инструкция:
- Подключите телефон к ПК и включите
Отладку по USB(Настройки → О телефоне → Номер сборки— нажмите 7 раз). - В командной строке выполните:
adb pull /data/data/com.xiaomi.smarthome/databases/mihome.db - Откройте скачанный файл
mihome.dbв DB Browser. - Перейдите на вкладку
Обзор данныхи выберите таблицуdevicerecord. - Найдите строку с вашим пылесосом (по названию модели) — токен будет в столбце
token.
Если у вас нет root-прав, но есть доступ к ADB, можно использовать утилиту sqlite3 прямо на телефоне:
adb shell
su
cd /data/data/com.xiaomi.smarthome/databases/
sqlite3 mihome.db"SELECT token FROM devicerecord WHERE name LIKE'%vacuum%';
| Модель пылесоса | Название в mihome.db |
Примечание |
|---|---|---|
| Xiaomi Mi Robot Vacuum | miio:vac или vacuum.v1 |
Старые модели (2016–2018 гг.) |
| Xiaomi Mi Robot Vacuum-Mop 2 | viomi.vacuum.v7 или dreame.vac |
Токен может храниться в device, а не в devicerecord |
| Dreame D9 | dreame.vac.mc1808 |
Требуется версия Mi Home не ниже 6.1.4 |
| Viomi V3 | viomi.vacuum.v18 |
Токен может быть зашифрован (используйте способ 5) |
4. Способ 3: Использование MITM-прокси для перехвата токена (iOS/Android)
Этот метод подходит для iOS и Android, но требует настройки промежуточного сервера (Man-In-The-Middle). Суть в том, что вы перехватываете сетевой трафик между телефоном и серверами Xiaomi, когда приложение Mi Home обращается к пылесосу.
Вам понадобится:
- 💻 Компьютер с установленным Charles Proxy или Fiddler
- 📱 Телефон и компьютер в одной сети Wi-Fi
- 🔧 Сертификат для перехвата HTTPS-трафика
Инструкция:
- Установите и запустите Charles Proxy на ПК.
- В настройках телефона добавьте прокси-сервер (IP вашего ПК и порт 8888).
- В Charles включите запись трафика (
Proxy → Start Recording). - Откройте Mi Home и обновите статус пылесоса (например, нажмите «Уборка»).
- В Charles найдите запрос к домену
api.io.mi.comс путьём/app/genTokenили/home/rpc/.... - В ответе сервера будет строка вида
"token":"641a2d7d6d3a4b1c8e9f0a1b2c3d4e5f".
⚠️ Внимание: Xiaomi активно борется с перехватом трафика. Если вы видите ошибкуSSL handshake failed, значит сервер обнаружил прокси. В этом случае попробуйте:
- 🔄 Перезапустить Mi Home и повторить перехват
- 📵 Отключить IPv6 на телефоне
- 🔒 Использовать другой прокси-инструмент (например, mitmproxy)
Официальный (через Mi Home)|Через базу данных (mihome.db)|MITM-прокси|Сторонние утилиты (Python-скрипты)|Ещё не пробовал-->
5. Способ 4: Автоматизированное извлечение токена с помощью Python-скриптов
Для пользователей, знакомых с программированием, есть готовые скрипты на Python, которые автоматизируют процесс получения токена. Один из самых популярных — mihome-bin или Python-Miio.
Установка и использование:
- Установите Python 3.8+ и библиотеку
python-miio:pip install python-miio - Скачайте скрипт miio_extract_token.py.
- Подключите телефон к ПК и запустите скрипт:
python miio_extract_token.py - Следуйте инструкциям на экране (потребуется ввести логин/пароль от Mi Account).
Скрипт автоматически:
- 🔍 Находит файл
mihome.dbна телефоне - 🔑 Извлекает токены всех привязанных устройств
- 📋 Сохраняет их в файл
tokens.txt
Преимущества метода:
- ✅ Работает без root-прав (использует
ADB backup) - ✅ Поддерживает новые модели пылесосов
- ✅ Можно запускать на Windows/Linux/Mac
Что делать, если скрипт выдаёт ошибку Device not found?
Эта ошибка означает, что скрипт не смог найти файл mihome.db. Возможные причины и решения:
1. Mi Home не обновлялся давно — обновите приложение и повторите попытку.
2. Android 11+ с ограничениями доступа — в настройках телефона разрешите ADB backup для Mi Home (Настройки → Приложения → Mi Home → Разрешения → Резервное копирование).
3. Пылесос не привязан к аккаунту — проверьте в Mi Home, что устройство отображается в списке.
4. Используется китайская версия Mi Home — некоторые региональные версии шифруют базу данных. Попробуйте установить глобальную версию приложения.
6. Способ 5: Получение токена через облако Xiaomi (для опытных пользователей)
Этот метод подходит, если у вас есть доступ к Mi Account, но нет возможности работать с телефоном. Мы будем использовать неофициальное API Xiaomi для извлечения токена через облако.
Вам понадобится:
- 🖥️ Компьютер с
curlилиPostman - 🔑 Логин и пароль от аккаунта Mi Account
- 📝 Device ID пылесоса (можно найти в Mi Home в настройках устройства)
Шаги:
- Получите
serviceToken(временный ключ для API):curl -X POST"https://account.xiaomi.com/pass/serviceLoginAuth2" \-H"Content-Type: application/x-www-form-urlencoded" \
-d"clientId=180100041053&packageName=com.xiaomi.smarthome&sign=YOUR_SIGN&locale=ru_RU&user=YOUR_EMAIL&hash=YOUR_PASSWORD_HASH"
Где
YOUR_PASSWORD_HASH— это MD5-хеш вашего пароля (можно сгенерировать здесь). - Используйте
serviceToken, чтобы получить список устройств:curl -X POST"https://api.io.mi.com/app/home/device_list" \-H"x-xiaomi-protocal-flag-cli: PROTOCAL-HTTP2" \
-H"Cookie: serviceToken=YOUR_SERVICE_TOKEN"
- В ответе найдите ваш пылесос по
deviceID— токен будет в полеtoken.
⚠️ Внимание: Этот метод нарушает пользовательское соглашение Xiaomi и может привести к временной блокировке аккаунта при частом использовании. Не рекомендуем применять его без крайней необходимости. Также Xiaomi периодически обновляет API, поэтому запрос может перестать работать.
7. Частые ошибки и их решения
При попытке получить токен пользователи часто сталкиваются сными проблемами. Рассмотрим самые распространённые и способы их устранения:
| Ошибка | Возможная причина | Решение |
|---|---|---|
Token not found в режиме разработчика |
Старая версия Mi Home или региональные ограничения | Обновите приложение до последней версии или установите глобальную версию APK |
Файл mihome.db пустой или отсутствует |
Приложение не синхронизировало данные или сбросились настройки | Перезапустите Mi Home, дождитесь синхронизации и повторите попытку |
SSL certificate error при MITM-прокси |
Xiaomi блокирует непроверенные сертификаты | Установите корневой сертификат Charles в доверенные на телефоне |
Токен состоит из одних звёздочек () |
Ограничение новой версии Mi Home (6.4.7+) | Используйте способ с mihome.db или Python-скриптом |
Invalid token при подключении к Home Assistant |
Токен получен для другого региона или устройство сброшено | Проверьте, что пылесос привязан к тому же аккаунту, что и в Mi Home |
Если ни один из методов не сработал, попробуйте:
- 🔄 Перепривязать пылесос к аккаунту (
Настройки устройства → Отвязатьи заново добавить). - 📱 Установить старую версию Mi Home (например, 6.1.4) — иногда новые версии скрывают токен.
- 📧 Написать в поддержку Xiaomi с просьбой предоставить токен (указывайте модель и
Device ID).
8. Безопасность: как защитить свой токен и аккаунт
Токен пылесоса — это ключ к управлению устройством, поэтому его утечка может привести к:
- 🚪 Несанкционированному доступу к пылесосу (включение/выключение, изменение настроек)
- 📍 Утечке данных о планировке вашего дома (если пылесос строит карту)
- 🔒 Блокировке аккаунта Mi Account при подозрительной активности
Правила безопасности:
- 🔐 Никому не передавайте токен, даже «для тестирования».
- 📁 Храните токен в защищённом месте (например, в менеджере паролей).
- 🔄 Регулярно проверяйте список привязанных устройств в Mi Home на наличие неизвестных гаджетов.
- 🛡️ Включите двухфакторную аутентификацию в Mi Account.
Если вы подозреваете, что токен скомпрометирован:
- Немедленно отвяжите пылесос от аккаунта в Mi Home.
- Смените пароль от Mi Account.
- Привяжите пылесос заново — будет сгенерирован новый токен.
FAQ: Ответы на частые вопросы
Можно ли получить токен без телефона?
Да, но с ограничениями. Вы можете использовать способ 5 (облачное API), но для этого нужен доступ к аккаунту Mi Account и Device ID пылесоса. Альтернатива — временно одолжить телефон друга с Android для извлечения токена через mihome.db.
Почему токен меняется после сброса пылесоса?
Токен привязан не к устройству, а к паре «аккаунт + устройство». При сбросе пылесос «забывает» привязку к аккаунту, и после повторного добавления генерируется новый токен. Старый ключ перестаёт работать.
Работает ли токен для пылесосов Dreame и Viomi?
Да, но с нюансами. Устройства Dreame и Viomi (например, Dreame D9 или Viomi V3) также используют протокол MiIo, поэтому токен можно получить теми же способами. Однако в mihome.db они могут значиться под другими именами (см. таблицу в способе 2).
Можно ли использовать один токен для нескольких пылесосов?
Нет. Каждое устройство имеет уникальный токен, даже если они привязаны к одному аккаунту Mi Account. Например, если у вас два пылесоса Xiaomi Mi Robot Vacuum, у каждого будет свой ключ.
Что делать, если токен перестал работать?
Причины могут быть разные:
- 🔄 Xiaomi обновила протокол аутентификации (попробуйте получить новый токен).
- 📵 Пылесос был отключён от Wi-Fi больше месяца (требуется повторная привязка).
- 🔒 Аккаунт Mi Account заблокирован за подозрительную активность.
Решение: отвяжите и заново привяжите пылесос к аккаунту, затем получите новый токен.