Почему токен пылесоса Xiaomi так важен и где его применяют
Токен устройства Xiaomi — это уникальный 32-значный ключ, который открывает доступ к управлению роботом-пылесосом через сторонние приложения, скрипты или системы умного дома. Без него вы не сможете интегрировать пылесос в Home Assistant, ioBroker или использовать альтернативные прошивки вроде Valetudo. Многие пользователи сталкиваются с необходимостью извлечь токен после покупки б/у устройства или при переходе с китайского сервера Mi Home на европейский.
В 2023–2026 годах Xiaomi ужесточила политику безопасности: токены перестали отображаться в открытом виде в приложении, а старые методы получения (через пакетный сниффер или логи Mi Home) перестали работать. Теперь для извлечения токена требуется либо использовать официальные инструменты с ограничениями, либо прибегать к обходным путям. В этой статье мы разберём все актуальные способы, включая те, что работают с последними версиями прошивок Roborock, Mi Robot Vacuum и Dreame.
Предупреждаем сразу: некоторые методы требуют технических навыков (работа с ADB, Python или HTTP-сервером). Если вы новичок, начинайте с самого простого — через приложение Mi Home (раздел 2). Для опытных пользователей мы подготовили продвинутые инструкции с использованием miio-cli и ручного парсинга сетевого трафика.
Способ 1: Получение токена через приложение Mi Home (официальный метод)
Это самый простой способ, но он работает только для устройств, привязанных к вашему аккаунту Xiaomi. Если пылесос был куплен б/у или привязан к другому региону (например, китайскому серверу), этот метод не сработает — потребуется сброс или альтернативные решения.
Инструкция:
- 📱 Откройте приложение Mi Home и перейдите в раздел с вашим пылесосом.
- 🔧 Нажмите на три точки в правом верхнем углу →
Настройки устройства. - 🔑 Прокрутите вниз до пункта
Общие настройки→Информация об устройстве. - 📋 Здесь может отображаться строка
Token(в старых версиях приложения) или кнопкаЭкспортировать токен. Если её нет — читайте дальше.
⚠️ Внимание: С 2023 года Xiaomi скрыла токены в приложении для большинства регионов. Если вы не видите этот пункт, попробуйте сменить регион аккаунта на Китай (mainland) или используйте методы из следующих разделов.
Если токен отображается, скопируйте его и сохраните в безопасном месте (например, в менеджере паролей). Этот ключ даёт полный доступ к устройству, поэтому не передавайте его третьим лицам.
Способ 2: Извлечение токена через HTTP-сервер (для технически подкованных)
Этот метод работает на основе перехвата сетевого трафика между приложением Mi Home и серверами Xiaomi. Он требует наличия компьютера и базовых знаний о работе с терминалом, но зато универсален для любых моделей пылесосов (включая Roborock S7, Mi Vacuum Mop 2 Pro и др.).
Алгоритм действий:
- Установите на компьютер
Python 3.xи библиотекуmitmproxy(через командуpip install mitmproxy). - Запустите
mitmproxyи настройте его на перехват HTTPS-трафика (инструкция ниже). - На телефоне подключитесь к той же сети Wi-Fi, что и компьютер, и установите сертификат
mitmproxy(скачать можно по адресуhttp://mitm.it). - Запустите приложение Mi Home, войдите в аккаунт и дождитесь, пока пылесос подключится к сети.
- В логах
mitmproxyнайдите запрос к доменуapi.io.mi.com— в нём будет строка с токеном.
Подробная команда для запуска mitmproxy:
mitmproxy --mode transparent --showhost --ssl-insecure
После запуска откройте в браузере http://mitm.it и установите сертификат на телефон. Затем в Mi Home обновите статус устройства — токен появится в логах в формате:
"token": "5f4dcc3b5aa765d61d8327deb882cf99"
⚠️ Внимание: Этот метод может не работать на последних версиях Mi Home (6.0+) из-за шифрования трафика. Если токен не отображается, попробуйте откатиться на версию приложения 5.9 или используйте способ с miio-cli (раздел 4).
Установить Python 3.x|Установить mitmproxy (pip install mitmproxy)|Подключить телефон и компьютер к одной сети|Установить сертификат mitmproxy на телефон|Запустить mitmproxy в режиме transparent-->
Способ 3: Использование утилиты miio-cli (для Linux/macOS/Windows)
Утилита miio-cli — это официальный инструмент от Xiaomi для управления устройствами по протоколу MiIO. С её помощью можно не только получить токен, но и отправлять команды пылесосу напрямую. Метод подходит для пользователей, знакомых с командной строкой.
Шаги для получения токена:
- Установите
Node.js(версия 14+) и выполните команду:npm install -g miio-cli - Подключите пылесос к той же сети, что и компьютер.
- Запустите сканирование устройств:
miio discoverВ ответе найдите IP-адрес пылесоса и его
deviceID. - Получите токен командой:
miio --ip [IP_пылесоса] --token [любой_символ] --discover-tokenНапример:
miio --ip 192.168.1.100 --token 123 --discover-token
Если команда выполнена успешно, вы получите ответ в формате:
Token: 5f4dcc3b5aa765d61d8327deb882cf99 via miIO protocol
Этот метод работает для большинства моделей, включая Roborock S5/S6/S7, Mi Robot Vacuum 1S и Dreame Bot Z10 Pro. Однако на некоторых прошивках (например, китайских) может потребоваться дополнительная аутентификация через аккаунт Xiaomi.
Что делать, если miio-cli не находит устройство?
1. Убедитесь, что пылесос и компьютер в одной сети (не через VPN или гостевой Wi-Fi).
2. Проверьте, что брандмауэр не блокирует UDP-порт 54321 (используемый miIO).
3. Попробуйте отключить IPv6 на сетевом интерфейсе.
4. Если пылесос китайской версии, возможно, потребуется сменить регион в Mi Home на "Китай" (mainland).
Способ 4: Ручное извлечение токена из файлов Mi Home (Android)
На устройствах под управлением Android токены устройств Xiaomi хранятся в зашифрованном виде в папке приложения Mi Home. Чтобы их извлечь, потребуется root-доступ или использование утилиты adb (без рут-прав можно получить только часть данных).
Инструкция для пользователей с root:
- Установите файловый менеджер с поддержкой root (например, Root Explorer).
- Перейдите по пути:
/data/data/com.xiaomi.smarthome/databases - Скопируйте файл
mihome.dbна компьютер. - Откройте его с помощью SQLite Browser и выполните запрос:
SELECT token FROM devices WHERE model LIKE '%vacuum%' OR model LIKE '%roborock%';
Для пользователей без root:
- 📱 Подключите телефон к компьютеру и включите
Отладку по USB. - 🖥️ Выполните команду:
adb backup -f mihome.ab com.xiaomi.smarthome - 🔍 Используйте утилиту
abe (Android Backup Extractor), чтобы извлечьmihome.dbиз архива.
⚠️ Внимание: В последних версиях Mi Home (6.0+) токены хранятся в зашифрованном виде. Если в базе данных вы видите не 32-значный ключ, а набор непонятных символов, воспользуйтесь инструкцией по расшифровке.
Способ 5: Альтернативные методы (для редких случаев)
Если ни один из вышеописанных способов не сработал, попробуйте эти варианты:
| Метод | Когда применять | Сложность | Примечания |
|---|---|---|---|
| Через Mi Account Token Extractor | Есть доступ к аккаунту Xiaomi, к которому привязан пылесос | Средняя | Требует авторизации по cookies из браузера |
| Сброс пылесоса к заводским настройкам | Устройство привязано к чужому аккаунту | Просто | После сброса пылесос нужно настроить заново |
| Обращение в поддержку Xiaomi | Пылесос куплен официально, есть чек | Долго | Могут потребовать доказательство покупки |
| Покупка токена на форумах | Крайний случай (не рекомендуется) | Опасно | Высокий риск мошенничества |
Для сброса пылесоса Xiaomi/Roborock к заводским настройкам зажмите кнопку питания на 10–15 секунд, пока не услышите звуковой сигнал. После этого устройство можно привязать к своему аккаунту и получить токен стандартным способом.
Важно: Если пылесос был куплен с рук и привязан к чужому аккаунту Xiaomi, сброс не всегда помогает — некоторые модели (например, Roborock S7 с китайской прошивкой) требуют подтверждения оригинального владельца. В этом случае единственный выход — связаться с продавцом и попросить его удалить устройство из своего аккаунта.
Частые ошибки и как их избежать
При попытке получить токен пользователи часто сталкиваются с типичными проблемами. Вот самые распространённые из них и способы их решения:
- 🚫 Ошибка "Device not found" в
miio-cli:
Проверьте, что пылесос и компьютер в одной сети. Отключите VPN и брандмауэр. Попробуйте указать IP-адрес пылесоса вручную. - 🔄 Токен меняется после перезагрузки пылесоса:
Это нормально для некоторых моделей (например, Dreame). Используйте постоянный токен, который можно получить через Mi Home API. - 🔒 Приложение Mi Home просит подтверждение по SMS при входе:
Если аккаунт привязан к китайскому номеру, используйте+86перед номером или создайте новый аккаунт с российским/европейским номером. - 📵 Mitmproxy не перехватывает трафик:
Убедитесь, что на телефоне установлен сертификатmitmproxyи отключено шифрование в Mi Home (в настройках приложения).
Если вы используете Home Assistant или ioBroker, убедитесь, что в конфигурационном файле указан правильный deviceID (его можно найти в Mi Home в информации об устройстве или через miio discover). Пример корректной конфигурации для Home Assistant:
vacuum:
- platform: xiaomi_miio
host: 192.168.1.100
token: 5f4dcc3b5aa765d61d8327deb882cf99
1. Правильность IP-адреса (он может меняться при перезагрузке роутера).
2. Отсутствие блокировок в роутере (некоторые модели блокируют локальный трафик miIO).
3. Версию прошивки пылесоса (на китайских прошивках может требоваться дополнительная аутентификация).-->
FAQ: Ответы на популярные вопросы
Можно ли получить токен без сброса пылесоса, если он привязан к чужому аккаунту?
Да, но это сложно. Варианты:
- Попросить продавца удалить устройство из своего аккаунта Mi Home.
- Использовать
mitmproxyилиmiio-cli, если пылесос в одной сети с вашим компьютером. - Для китайских моделей (Roborock с прошивкой CN) иногда помогает смена региона сервера в Mi Home на "Китай" (mainland).
Если ничего не помогает, остаётся только сброс с риском, что пылесос потребует подтверждения от оригинального владельца.
Почему токен, полученный через mitmproxy, не работает в Home Assistant?
Причины могут быть следующими:
- Токен временный (некоторые модели Dreame генерируют новые токены при каждом подключении). Решение: используйте
miio-cliдля получения постоянного токена. - Неверный
deviceIDв конфигурации. Проверьте его черезmiio discover. - Пылесос подключён к облаку Xiaomi, а не к локальной сети. Отключите его от интернета и попробуйте снова.
Как проверить, работает ли токен?
Самый простой способ — отправить тестовую команду через miio-cli:
miio --ip [IP_пылесоса] --token [ваш_токен] info
Если команда вернёт информацию об устройстве (модель, прошивка, статус), токен рабочий. Если увидите ошибку Invalid token — токен неверный или устарел.
Можно ли использовать один токен для нескольких пылесосов?
Нет. Каждый токен уникален и привязан к конкретному устройству по его deviceID. Если у вас несколько пылесосов, для каждого нужно получать токен отдельно.
Что делать, если токен suddenly перестал работать?
Вероятные причины и решения:
- Xiaomi обновила прошивку пылесоса → попробуйте получить токен заново.
- Устройство было сброшено → требуется новая привязка и токен.
- Изменился IP-адрес пылесоса → обновите его в конфигурации Home Assistant/ioBroker.
- Истёк срок действия временного токена → используйте
miio-cliдля получения постоянного.