Роботы-пылесосы Xiaomi и Mijia требуют специального токена доступа для интеграции с альтернативными приложениями (например, Home Assistant), создания автоматизаций или удалённого управления через API. Этот уникальный 32-символьный ключ связывает устройство с вашим аккаунтом Mi Account и обеспечивает безопасный обмен данными. Однако производитель не предоставляет токен в открытом виде — его нужно извлекать самостоятельно.
В этой статье мы разберём все актуальные методы получения токена для пылесосов Xiaomi Mi Robot, Viomi, Dreame и других моделей на платформе Mi Home, включая обход новых ограничений 2023–2026 годов. Вы узнаете, как сделать это через официальное приложение, с помощью Python-скриптов, а также альтернативные способы для устройств с прошивкой CN (Китай). Особое внимание уделим рискам блокировки аккаунта при некорректных действиях и способам их избежать.
Что такое токен пылесоса Xiaomi и зачем он нужен
Токен (или MIoT Token) — это уникальный идентификатор сессии, который генерируется серверами Xiaomi при авторизации устройства в экосистеме Mi Home. Он состоит из 32 символов (цифры и латинские буквы) и действует до тех пор, пока:
- 🔄 Вы не сбросите устройство к заводским настройкам;
- 🔒 Не удалите пылесос из аккаунта Mi Home;
- 🚫 Не измените регион аккаунта (например, с
CNнаRU).
Без токена невозможно:
- 📱 Подключить пылесос к Home Assistant, ioBroker или другим системам умного дома;
- 🤖 Использовать неофициальные приложения (например, Valetudo для прошивки без облака);
- 📊 Получать данные о карте уборки, статусе батареи или ошибках через API;
- ⚙️ Настраивать автоматизации по расписанию без официального приложения.
Важно понимать, что токен привязан к конкретному устройству и аккаунту. Если вы продаёте пылесос, новый владелец должен получить свой токен после сброса. Также Xiaomi периодически ужесточает защиту: например, с 2023 года перестали работать старые методы извлечения токена через mitmproxy для устройств с прошивкой EU/RU.
⚠️ Внимание: Не передавайте свой токен третьим лицам! Это равносильно передаче логина и пароля от аккаунта Mi Home, так как токен позволяет управлять всеми устройствами в вашей экосистеме.
Способ 1: Получение токена через официальное приложение Mi Home (для прошивок EU/RU)
Это самый простой и безопасный метод, который работает для большинства моделей пылесосов Xiaomi с прошивкой для Европы или России (EU/RU). Вам не потребуются технические навыки или дополнительное ПО.
Инструкция:
- Откройте приложение Mi Home и перейдите на вкладку
Профиль → Настройки → Общие настройки → О программе. - Нажмите 5–7 раз подряд на версию приложения (например,
6.5.410), пока не появится надписьРежим разработчика включён. - Вернитесь в главное меню и выберите ваш пылесос. Перейдите в
Настройки устройства → Общие → О устройстве. - Тапните 5 раз по модели пылесоса (например,
Mi Robot Vacuum-Mop 2 Lite). Появится всплывающее окно с токеном.
Если окно с токеном не появляется:
- 📱 Обновите приложение Mi Home до последней версии;
- 🌐 Проверьте, что регион аккаунта совпадает с регионом прошивки пылесоса (
EUдля Европы,RUдля России); - 🔄 Перезагрузите пылесос (зажмите кнопку питания на 10 секунд).
Обновить приложение Mi Home до последней версии
Проверить регион аккаунта (должен совпадать с прошивкой пылесоса)
Включить режим разработчика (тапать по версии приложения)
Перезагрузить пылесос перед извлечением токена-->
⚠️ Внимание: На некоторых моделях (например, Xiaomi Mi Robot Vacuum-Mop 2 Pro) этот метод может не сработать из-за обновлённой прошивки. В таком случае используйте Способ 3 с Python-скриптом.
Способ 2: Извлечение токена через пакетный сниффер (для Android)
Если предыдущий метод не сработал, можно перехватить токен при обмене данными между приложением Mi Home и серверами Xiaomi. Для этого потребуется Android-смартфон с правами root или возможность установки пользовательского сертификата.
Пошаговая инструкция:
- Установите на смартфон приложение Packet Capture или HTTP Toolkit.
- В настройках Wi-Fi подключитесь к той же сети, что и пылесос, и настройте прокси-сервер на IP вашего ПК (если используете HTTP Toolkit).
- Запустите сниффер и начните запись трафика.
- Откройте Mi Home и выполните любое действие с пылесосом (например, запустите уборку).
- В логах сниффера найдите запрос к домену
api.io.mi.comилиmiot-spec.org. Токен будет в параметреssecurityили в заголовкеx-xiaomi-protocal-flag-clients.
Пример того, как может выглядеть токен в трафике:
{
"request": {
"path":"/home/rpc/MiRobotVacuum_v2",
"header": {
"x-xiaomi-protocal-flag-clients":"app/phone/63e4a1b2f7d89c012e54f8a9"
}
}
}
Где 63e4a1b2f7d89c012e54f8a9 — это и есть токен (в реальности он длиннее).
Что делать, если токен не найден в трафике?
Если сниффер не показывает токен, попробуйте:
1. Отключить шифрование трафика в Mi Home (в настройках приложения).
2. Использовать другой сниффер, например Fiddler с настройкой декодирования HTTPS.
3. Проверить, что пылесос подключён к тому же аккаунту, с которого вы сниффите трафик.
4. Для устройств с прошивкой CN этот метод может не работать — используйте Python-скрипт.
| Метод | Сложность | Требуется root | Работает для прошивки |
|---|---|---|---|
| Через Mi Home (тапы) | ⭐ | ❌ Нет | EU/RU |
| Сниффинг трафика | ⭐⭐⭐ | ✅ Да (или сертификат) | EU/RU/CN |
| Python-скрипт | ⭐⭐ | ❌ Нет | Любая |
| Через Valetudo (прошивка) | ⭐⭐⭐⭐ | ❌ Нет | Только для устройств с Valetudo |
Способ 3: Автоматическое получение токена с помощью Python-скрипта
Для устройств с прошивкой CN (Китай) или если предыдущие методы не сработали, можно использовать скрипт на Python, который эмулирует авторизацию в Mi Home и извлекает токен. Этот способ требует минимальных технических навыков, но не требует root-прав.
Инструкция:
- Установите Python 3.8+ на свой ПК (скачать).
- Скачайте скрипт
miioили используйте этот упрощённый вариант:
pip install python-miio
miio --discover
miio --ip <IP_пылесоса> --token <ваш_токен> info
Если токен неизвестен, используйте этот скрипт для его извлечения:
from miio import ChuangmiPlug, Vacuum
import click
@click.command
@click.option('--ip', prompt='IP-address of the device', help='IP of the vacuum')
@click.option('--username', prompt='Mi username', help='Xiaomi account username')
@click.option('--password', prompt='Mi password', hide_input=True, help='Xiaomi account password')
def main(ip, username, password):
vacuum = Vacuum(ip, token=None)
vacuum.auth(username, password)
print(f"Token: {vacuum.token}")
if __name__ =='__main__':
main
Сохраните код в файл get_token.py и запустите командой:
python get_token.py --ip 192.168.1.100 --username ваш_email@mail.ru --password ваш_пароль
Где 192.168.1.100 — это IP-адрес вашего пылесоса в локальной сети (можно узнать в роутере или через приложение Fing).
⚠️ Внимание: Не используйте этот метод чаще 1 раза в сутки для одного аккаунта. Xiaomi может заблокировать доступ к API при подозрении на брутфорс.
Способ 4: Альтернативные методы для устройств с прошивкой CN
Пылесосы с китайской прошивкой (CN) часто требуют дополнительных действий для извлечения токена. Вот рабочие методы для таких устройств:
Метод A: Через приложение Mi Home (Китайская версия)
1. Установите китайскую версию Mi Home (скачать можно здесь).
2. Зарегистрируйте новый аккаунт с китайским номером телефона (можно использовать виртуальный номер).
3. Подключите пылесос к этому аккаунту и используйте Способ 1 (тапы по версии).
Метод B: Через Cloud Tokens Extractor
Используйте веб-сервис Cloud Tokens Extractor:
- Авторизуйтесь через свой аккаунт Mi Home.
- Выберите пылесос из списка устройств.
- Скопируйте токен из поля
Token.
Этот метод работает для большинства устройств, но требует предоставления доступа к вашему аккаунту стороннему сервису. Используйте его на свой страх и риск.
Через тапы в Mi Home (Способ 1)
Сниффинг трафика (Способ 2)
Python-скрипт (Способ 3)
Cloud Tokens Extractor (Способ 4)
Другой метод-->
Проблемы и решения: что делать, если токен не работает
Иногда полученный токен может не работать или переставать действовать. Вотные проблемы и их решения:
| Проблема | Возможная причина | Решение |
|---|---|---|
Токен состоит из одних нулей (0000...) |
Ошибка при извлечении или устройство не привязано к аккаунту | Повторите процедуру или переподключите пылесос в Mi Home |
Ошибка Invalid token при использовании |
Токен устарел или сброшен | Получите новый токен или перезагрузите пылесос |
| Токен работает, но доступ к API ограничен | Устройство с прошивкой CN, а аккаунт не китайский |
Смените регион аккаунта на CN или используйте китайскую версию Mi Home |
| Аккаунт заблокирован после извлечения токена | Слишком частые запросы к API | Подождите 24 часа или обратитесь в поддержку Xiaomi |
Если токен перестал работать после обновления прошивки пылесоса, попробуйте:
- Сбросить пылесос к заводским настройкам (зажмите кнопку питания на 20 секунд).
- Удалить устройство из аккаунта Mi Home и подключить заново.
- Получить новый токен одним из описанных методов.
Безопасность: как не потерять доступ к пылесосу
Работа с токенами и API Xiaomi требует осторожности. Вот ключевые правила безопасности:
- 🔐 Никогда не делитесь токеном в открытых источниках (форумы, GitHub). Это даёт полный доступ к вашему пылесосу и другим устройствам в Mi Home.
- 📱 Используйте двухфакторную авторизацию в аккаунте Xiaomi.
- 🔄 Регулярно (раз в 3–6 месяцев) обновляйте токен, особенно если заметили подозрительную активность.
- 🚫 Не используйте токен на непроверенных сервисах (например, облачных интеграциях от малоизвестных разработчиков).
Если вы подозреваете, что ваш токен скомпрометирован:
- Немедленно смените пароль от аккаунта Mi Home.
- Удалите пылесос из аккаунта и подключите его заново.
- Получите новый токен и обновите его во всех интеграциях.
Для дополнительной защиты можно ограничить доступ к пылесосу по IP. Например, в Home Assistant настройте правило, чтобы API-запросы шли только из локальной сети:
vacuum:
- platform: xiaomi_miio
host: 192.168.1.100
token: YOUR_TOKEN
name:"Xiaomi Vacuum"
allow_unreachable: false
FAQ: Частые вопросы о токенах пылесосов Xiaomi
Можно ли получить токен без сброса пылесоса?
Да, все описанные методы (кроме полного сброса) позволяют извлечь токен без потери настроек пылесоса. Однако если устройство уже было сброшено ранее, вам потребуется подключить его к аккаунту заново.
Работает ли токен для всех моделей Xiaomi (Viomi, Dreame, Roborock)?
Токен универсален для всех устройств на платформе Mi Home, включая пылесосы Viomi и Dreame. Однако для Roborock (например, модели S7 или S8) может потребоваться отдельный токен, так как они используют свой протокол rrHome.
Что делать, если пылесос с прошивкой CN, а у меня нет китайского номера?
Вы можете:
- Купить виртуальный китайский номер (например, на SMS-Activate).
- Использовать аккаунт друга с китайским номером (но это небезопасно).
- Перепрошить пылесос на
EU(рискованно, может аннулировать гарантию).
Можно ли использовать один токен для нескольких пылесосов?
Нет, каждый пылесос имеет уникальный токен. Однако один аккаунт Mi Home может управлять несколькими устройствами, и для каждого из них можно извлечь свой токен.
Как проверить, работает ли токен?
Используйте эту команду в терминале (предварительно установив python-miio):
miio --ip <IP_пылесоса> --token <ваш_токен> info
Если токен рабочий, вы увидите информацию о пылесосе (модель, заряд батареи, статус). Если нет — появится ошибка Invalid token.