Как получить токен для Xiaomi Mi Robot Vacuum Cleaner: все рабочие способы

Роботы-пылесосы Xiaomi Mi Robot Vacuum Cleaner давно стали неотъемлемой частью «умных домов», но их полноценное использование за пределами стандартного приложения Mi Home требует знания уникального токена устройства. Этот 32-значный ключ открывает доступ к API робота, позволяя интегрировать его с Home Assistant, Node-RED или другими системами автоматизации. Без токена вы не сможете отправлять прямые команды, получать данные о статусе уборки или настраивать сложные сценарии.

Проблема в том, что Xiaomi не предоставляет токен в открытом виде — его нужно извлекать самостоятельно. Существует несколько методов: от простого копирования через Mi Home (если устройство уже привязано) до ручного перехвата трафика с помощью MITM-прокси или специализированных скриптов. В этой статье мы разберём все актуальные способы, включая нюансы для разных моделей (Mi Robot Vacuum-Mop 2 Pro, S5 Max, STYJ02YM и др.), а также расскажем, как избежать типичных ошибок при получении токена.

Что такое токен Xiaomi и зачем он нужен

Токен (или device token) — это уникальный идентификатор, который Xiaomi присваивает каждому устройству в экосистеме Mi Home. Он выполняет две ключевые функции:

  • 🔑 Аутентификация: подтверждает, что запрос к устройству исходит от доверенного источника (вашего аккаунта или авторизованного приложения).
  • 🛡️ Безопасность: защищает от несанкционированного доступа к управлению роботом (например, через локальную сеть).

Без токена вы ограничены возможностями официального приложения. С токеном открываются горизонты:

  • 🏠 Интеграция с Home Assistant, ioBroker или OpenHAB для создания автоматизированных сценариев (например, запуск уборки при уходе из дома).
  • 📊 Получение расширенной телеметрии: карты уборки в реальном времени, статус батареи, ошибки датчиков.
  • 🔧 Использование альтернативных прошивок (например, Valetudo) для работы без облака Xiaomi.

Важно понимать, что токен не является статичным: при сбросе устройства или перепривязке к другому аккаунту он изменяется. Также Xiaomi периодически обновляет механизмы защиты, поэтому некоторые старые методы извлечения токена (например, через miio extract_tokens) могут перестать работать для новых моделей.

📊 Для чего вам нужен токен Xiaomi Mi Robot?
Интеграция с Home Assistant
Настройка альтернативной прошивки
Разработка собственных скриптов
Локальное управление без облака
Другое

Способ 1: Получение токена через приложение Mi Home (самый простой метод)

Если ваш робот-пылесос уже привязан к аккаунту Mi Home, извлечь токен можно без технических ухищрений — прямо из приложения. Этот метод работает для большинства моделей, включая Mi Robot Vacuum-Mop P, S7 и STYTJ01ZHM.

Шаги для Android:

  1. Откройте Mi Home и перейдите на страницу вашего робота-пылесоса.
  2. Нажмите на три точки (⋮) в правом верхнем углу → НастройкиОбщие настройки.
  3. Прокрутите вниз и выберите О программе.
  4. Тапните 5–7 раз по версии прошивки (например, 3.5.9_0043), пока не появится уведомление Дополнительные функции разблокированы.
  5. Вернитесь в Общие настройки — там появится новый пункт Получить токен (или Device Info). Нажмите на него.
  6. Скопируйте отображаемый токен (32 символа) и не делитесь им с посторонними!

Для iOS: официальное приложение Mi Home не поддерживает этот метод. Вместо этого используйте альтернативные клиенты, например, Mi Home (Poco) или Aqara Home (если устройство совместимо). Также можно временно установить Mi Home на Android-эмулятор (BlueStacks).

Убедитесь, что робот подключён к Wi-Fi|Обновите приложение Mi Home до последней версии|Войдите в тот же аккаунт, к которому привязан пылесос|Отключите VPN (он может блокировать доступ к скрытым настройкам)-->

⚠️ Внимание: После обновления Mi Home до версий 6.0+ скрытый режим может исчезнуть. В этом случае используйте Способ 3 (перехват трафика) или откат приложения на версию 5.9.* через APK.

Способ 2: Извлечение токена через Python-скрипт (для опытных пользователей)

Если скрытый режим в Mi Home недоступен, токен можно получить с помощью скрипта miio extract_tokens, который анализирует трафик между приложением и серверами Xiaomi. Этот метод требует базовых знаний работы с Python и ADB.

Необходимые инструменты:

  • 🐍 Python 3.8+ с установленными библиотеками miio и python-miio.
  • 📱 Android-смартфон с root-правами или ПК с подключённым эмулятором (Genymotion, BlueStacks).
  • 🔌 ADB (Android Debug Bridge) для перехвата трафика.

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

  1. Установите зависимости:
    pip install python-miio
  2. Скачайте скрипт miio_extract_tokens.py с GitHub.
  3. Подключите смартфон к ПК и запустите перехват трафика:
    adb tcpip 5555
    

    adb connect [IP_вашего_телефона]:5555

    adb logcat | grep "miio"

  4. Откройте Mi Home и дождитесь, пока робот-пылесос загрузит данные (например, обновите статус устройства).
  5. Остановите запись лога (Ctrl+C) и сохраните вывод в файл miio_log.txt.
  6. Запустите скрипт для извлечения токена:
    python miio_extract_tokens.py miio_log.txt

    Результат будет в формате:

    Device ID: 123456789
    

    Token: a1b2c3d4e5f6... (32 символа)

Если скрипт не находит токен, проверьте:

  • 🔄 Версию Mi Home (должна быть не новее 6.0).
  • 🌐 Отсутствие VPN или брандмауэра, блокирующего трафик.
  • 📡 Стабильное подключение робота к Wi-Fi (токен передаётся только при активном сеансе).

Способ 3: Перехват токена через MITM-прокси (Charles/Fiddler)

Этот метод подходит для пользователей, у которых не работает скрытый режим в Mi Home, а скрипты возвращают ошибки. Суть заключается в перехвате HTTPS-трафика между приложением и серверами Xiaomi с помощью прокси-сервера.

Что понадобится:

  • 🖥️ ПК с установленным Charles Proxy или Fiddler.
  • 📱 Android/iOS-устройство с Mi Home.
  • 🔗 Сертификат прокси, установленный на смартфон (для декодирования HTTPS).

Инструкция для Charles Proxy:

  1. Установите Charles Proxy на ПК и включите запись трафика (Proxy → Start Recording).
  2. На смартфоне подключитесь к той же сети, что и ПК, и настройте прокси:
    • На Android: Настройки → Wi-Fi → [ваша сеть] → Дополнительно → Прокси-сервер (ручной) → укажите IP ПК и порт 8888.
    • На iOS: Настройки → Wi-Fi → (i) → Настройка прокси → Ручное.
  • Установите сертификат Charles на смартфон:
    • Перейдите по адресу chls.pro/ssl в браузере устройства.
    • Скачайте и установите сертификат (на Android может потребоваться разблокировка установки из неизвестных источников).
    • Откройте Mi Home, обновите данные робота-пылесоса и остановите запись в Charles.
    • В фильтре Charles введите miio или api.io.mi.com.
    • Найдите запрос с путьём /home/rpc/... — в теле ответа будет поле "token": "ваш_токен".
    Проблема Решение
    Charles не перехватывает трафик Проверьте настройки прокси на смартфоне и брандмауэр на ПК. На Android 10+ может потребоваться отключить "Приватный DNS".
    Сертификат не устанавливается На iOS: Настройки → Основные → VPN и управление устройством → Установить сертификат. На Android: используйте Magisk для системной установки.
    Токен не найден в логах Попробуйте обновить статус устройства в Mi Home или перезапустить приложение. Ищите запросы к api.io.mi.com.
    ⚠️ Внимание: Перехват трафика через прокси может нарушать политику конфиденциальности Xiaomi. Не используйте этот метод для устройств, не принадлежащих вам, и не распространяйте полученные токены.

    Способ 4: Использование альтернативных приложений (Mi Home Mod, Yeti)

    Если стандартные методы не сработали, можно воспользоваться модифицированными версиями Mi Home, которые отображают токен в открытом виде. Самые популярные:

    • 📱 Mi Home Mod (для Android) — показывает токен в информации об устройстве.
    • 🦍 Yeti — альтернативный клиент для управления устройствами Xiaomi с поддержкой локального API.
    • 🌐 Mi Home Bind (веб-сервис) — позволяет привязать устройство к аккаунту и извлечь токен через браузер.

    Инструкция для Mi Home Mod:

    1. Скачайте APK Mi Home Mod с 4PDA (проверяйте репутацию источника!).
    2. Установите приложение, войдите в свой аккаунт Xiaomi.
    3. Перейдите к роботу-пылесосу → НастройкиИнформация об устройстве.
    4. Прокрутите вниз — токен будет отображён в поле Device Token.

    Предупреждения:

    • ⚠️ Модифицированные приложения могут содержать вредоносный код. Используйте только проверенные сборки.
    • ⚠️ Xiaomi может заблокировать аккаунт за использование неофициальных клиентов (риск минимален, но существует).
    Что делать, если токен не отображается в Mi Home Mod?

    Попробуйте:

    1. Перепривязать устройство к аккаунту через официальное приложение.

    2. Очистить кэш Mi Home Mod и перезапустить его.

    3. Использовать другую модифицированную версию (например, Mi Home (Poco)).

    Если ничего не помогает, устройство может использовать новый протокол аутентификации (см. Способ 5).

    Способ 5: Получение токена для новых моделей (протокол MiOT)

    Начиная с 2022 года, Xiaomi внедряет новый протокол MiOT (Xiaomi Internet of Things), который заменяет старый miio. В этом случае токен извлекается иначе — через spec-файл устройства.

    Особенности MiOT:

    • 🔧 Токен динамически генерируется при каждом подключении.
    • 🔒 Требуется clientId и sign для аутентификации.
    • 📡 Работает только через облако Xiaomi (локальное управление ограничено).

    Как получить данные для MiOT:

    1. Установите python-miio версии 0.5.8+:
      pip install --upgrade python-miio
    2. Используйте скрипт для извлечения spec:
      from miio import MiOTDevice
      

      device = MiOTDevice("192.168.1.100", "ваш_токен_из_mi_home")

      spec = device.info()

      print(spec)

    3. В ответе найдите поля "model", "miotSpec" и "netif" — они понадобятся для интеграции.

    Для моделей Mi Robot Vacuum-Mop 2 Ultra (STYTJ02YM) и новее токен может быть скрыт даже в spec. В этом случае используйте облачный API:

    from miio import ChuinMiIoProtocol
    
    

    protocol = ChuinMiIoProtocol(

    ip="192.168.1.100",

    token="ваш_токен",

    model="roborock.vacuum.m1s" # уточните модель!

    )

    device_info = protocol.info()

    print(device_info)

    Типичные ошибки и их решения

    При извлечении токена пользователи часто сталкиваются с проблемами. Вот самые распространённые и способы их устранения:

    Ошибка Причина Решение
    Invalid token при подключении Токен устарел или неверен Получите новый токен или проверьте правильность ввода (регистр важен!)
    Скрытый режим в Mi Home не активируется Новая версия приложения Откатитесь на версию 5.9.* или используйте перехват трафика
    Device not found в скриптах Робот не в сети или заблокирован Проверьте подключение к Wi-Fi и перезагрузите устройство
    Charles/Fiddler не видит токен HTTPS не декодируется Установите сертификат прокси на устройство и проверьте настройки SSL

    Дополнительные советы:

    • 🔄 Если робот перестал отвечать после смены токена, выполните сброс через удержание кнопки питания 10 секунд.
    • 📡 Для моделей с Dual-Band Wi-Fi (например, S7 MaxV) подключайтесь к сети 2.4 ГГц — некоторые скрипты не работают с 5 ГГц.
    • 🔒 Если используете Home Assistant, добавьте токен в конфиг как token: "ваш_токен" в секции vacuum.

    Безопасность: как хранить и использовать токен

    Токен устройства — это как пароль от вашего робота-пылесоса. Его компрометация может привести к:

    • 🚪 Несанкционированному управлению пылесосом (включение/выключение, изменение настроек).
    • 📍 Утечке данных о планировке вашего дома (если злоумышленник получит доступ к картам уборки).
    • 🔄 Блокировке устройства Xiaomi при подозрении на взлом.

    Правила безопасности:

    • 🔐 Храните токен в зашифрованном файле (например, KeePass или 1Password).
    • 🚫 Не передавайте токен через незащищённые каналы (мессенджеры, форумы).
    • 🔄 Регулярно обновляйте токен (раз в 3–6 месяцев) через перепривязку устройства.
    • 🌐 Ограничьте доступ к локальной сети: настройте VLAN для IoT-устройств или используйте отдельный Wi-Fi для робота.

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

    1. Немедленно перепривяжите робот к аккаунту Mi Home (токен сбросится).
    2. Проверьте логи Home Assistant/другой системы на подозрительные запросы.
    3. Обновите прошивку робота (иногда Xiaomi закрывает уязвимости в старых версиях).

    FAQ: Частые вопросы о токенах Xiaomi Mi Robot

    Можно ли получить токен без root-прав?

    Да, большинство методов (скрытый режим в Mi Home, перехват через прокси, модифицированные приложения) не требуют root. Root нужен только для глубокого анализа трафика на некоторых версиях Android.

    Работает ли токен после сброса робота?

    Нет, токен привязан к текущей сессии устройства. После сброса (удержание кнопки 5–10 секунд) или перепривязки к другому аккаунту он изменяется.

    Как узнать токен для Mi Robot Vacuum-Mop 2 Pro?

    Для этой модели подходят все описанные методы, но лучше использовать Python-скрипт или Charles Proxy, так как скрытый режим в Mi Home может быть отключён.

    Можно ли использовать один токен для нескольких устройств?

    Нет, токен уникален для каждого устройства. Однако один аккаунт Mi Home может управлять несколькими роботами, и для каждого будет свой токен.

    Что делать, если токен перестал работать?

    Проверьте:

    • Подключение робота к Wi-Fi.
    • Актуальность токена (возможно, устройство было перепривязано).
    • Обновления прошивки (иногда Xiaomi меняет протокол аутентификации).

    Если ничего не помогает, получите новый токен.