Как узнать токен пылесоса Xiaomi Vacuum Cleaner: 5 проверенных способов

Роботы-пылесосы 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:

  1. Откройте Mi Home и убедитесь, что пылесос подключён к сети.
  2. Перейдите в Профиль → Настройки → Общие настройки → О программе.
  3. Нажмите 5–7 раз на версию приложения, пока не появится надпись Режим разработчика включён.
  4. Вернитесь в Настройки → Общие настройки — там появится новый пункт Режим разработчика.
  5. Выберите Локальная сеть (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)

Пошаговая инструкция:

  1. Подключите телефон к ПК и включите Отладку по USB (Настройки → О телефоне → Номер сборки — нажмите 7 раз).
  2. В командной строке выполните:
    adb pull /data/data/com.xiaomi.smarthome/databases/mihome.db
  3. Откройте скачанный файл mihome.db в DB Browser.
  4. Перейдите на вкладку Обзор данных и выберите таблицу devicerecord.
  5. Найдите строку с вашим пылесосом (по названию модели) — токен будет в столбце 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-трафика

Инструкция:

  1. Установите и запустите Charles Proxy на ПК.
  2. В настройках телефона добавьте прокси-сервер (IP вашего ПК и порт 8888).
  3. В Charles включите запись трафика (Proxy → Start Recording).
  4. Откройте Mi Home и обновите статус пылесоса (например, нажмите «Уборка»).
  5. В Charles найдите запрос к домену api.io.mi.com с путьём /app/genToken или /home/rpc/....
  6. В ответе сервера будет строка вида "token":"641a2d7d6d3a4b1c8e9f0a1b2c3d4e5f".
⚠️ Внимание: Xiaomi активно борется с перехватом трафика. Если вы видите ошибку SSL handshake failed, значит сервер обнаружил прокси. В этом случае попробуйте:

  • 🔄 Перезапустить Mi Home и повторить перехват
  • 📵 Отключить IPv6 на телефоне
  • 🔒 Использовать другой прокси-инструмент (например, mitmproxy)

Официальный (через Mi Home)|Через базу данных (mihome.db)|MITM-прокси|Сторонние утилиты (Python-скрипты)|Ещё не пробовал-->

5. Способ 4: Автоматизированное извлечение токена с помощью Python-скриптов

Для пользователей, знакомых с программированием, есть готовые скрипты на Python, которые автоматизируют процесс получения токена. Один из самых популярных — mihome-bin или Python-Miio.

Установка и использование:

  1. Установите Python 3.8+ и библиотеку python-miio:
    pip install python-miio
  2. Скачайте скрипт miio_extract_token.py.
  3. Подключите телефон к ПК и запустите скрипт:
    python miio_extract_token.py
  4. Следуйте инструкциям на экране (потребуется ввести логин/пароль от 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 в настройках устройства)

Шаги:

  1. Получите 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-хеш вашего пароля (можно сгенерировать здесь).

  2. Используйте 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"

  3. В ответе найдите ваш пылесос по 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.

Если вы подозреваете, что токен скомпрометирован:

  1. Немедленно отвяжите пылесос от аккаунта в Mi Home.
  2. Смените пароль от Mi Account.
  3. Привяжите пылесос заново — будет сгенерирован новый токен.

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 заблокирован за подозрительную активность.

Решение: отвяжите и заново привяжите пылесос к аккаунту, затем получите новый токен.