Получение токена пылесоса Xiaomi на ПК

Интеграция роботизированного помощника в единую экосистему умного дома — это логичный шаг для любого владельца техники Xiaomi, Roborock или Dreame. Однако часто пользователи сталкиваются с барьером: для подключения устройства к сторонним платформам, таким как Home Assistant или OpenHAB, требуется уникальный ключ доступа. Этот ключ, именуемый токеном, служит цифровым пропуском, позволяющим локальной сети взаимодействовать с вашим гаджетом в облаке или напрямую.

Получение этого идентификатора через официальное приложение Mi Home на смартфоне становится всё сложнее из-за скрытия данных в новых версиях ПО. Именно здесь на помощь приходит персональный компьютер. Используя ПК с операционной системой Windows, macOS или Linux, вы получаете мощный инструментарий для извлечения скрытых параметров конфигурации. В этом материале мы разберем проверенные методы добычи токена без необходимости разбирать устройство.

Важно понимать, что процесс требует внимательности и базового понимания работы сетевых протоколов. Мы рассмотрим как автоматизированные скрипты, так и ручной анализ трафика. Токен состоит из 32 символов в шестнадцатеричном формате и является критически важным элементом для локального управления. Без него интеграция с продвинутыми системами автоматизации невозможна, так как протокол miIO требует строгой авторизации для каждого запроса.

⚠️ Внимание: Все описанные ниже действия вы выполняете на свой страх и риск. Вмешательство в сетевую конфигурацию или использование стороннего ПО для анализа трафика может быть расценено антивирусами как подозрительная активность. Убедитесь, что вы используете доверенные источники кода.

Зачем нужен токен и как работает протокол miIO

Протокол miIO, разработанный компанией Xiaomi, является основой коммуникации между умными устройствами и серверами компании. В отличие от простых IoT-гаджетов, которые просто отправляют данные в облако, устройства на базе miIO используют шифрование для команд. Токен здесь выступает в роли симметричного ключа шифрования. Это означает, что и устройство, и управляющий клиент (ваш ПК или сервер умного дома) должны знать этот секрет для расшифровки команд.

Без наличия токена вы ограничены только функционалом официального приложения Mi Home или Roborock. Вы не сможете запустить уборку голосом через Google Assistant локально, создать сложные сценарии в Node-RED или видеть карту уборки в интерфейсе Home Assistant. Многие энтузиасты стремятся получить токен именно для того, чтобы разорвать зависимость от китайских серверов и обеспечить работу техники даже при отключении интернета.

Существует заблуждение, что токен статичен и прописан навсегда. На самом деле, при сбросе устройства к заводским настройкам или повторной привязке в приложении, токен может измениться. Поэтому, если вы перепривязывали пылесос, старые ключи доступа перестанут работать, и процедуру придется повторить. Это мера безопасности, призванная защитить вашу локальную сеть от несанкционированного доступа.

Подготовка рабочего окружения на компьютере

Прежде чем приступать к извлечению ключей, необходимо подготовить программную среду. Большинство современных методов требуют наличия установленного интерпретатора Python. Это кроссплатформенный язык программирования, который идеально подходит для работы с сетевыми запросами. Убедитесь, что версия Python не ниже 3.7, так как старые версии могут не поддерживать необходимые библиотеки шифрования.

Также вам потребуется пакетный менеджер pip, который обычно идет в комплекте с Python. С его помощью мы будем устанавливать специализированные утилиты, такие как python-miio или miio-cli. Эти инструменты позволяют отправлять специфические запросы к устройству в локальной сети. Если вы пользователь Windows, не забудьте при установке Python отметить галочку "Add Python to PATH", чтобы запускать команды из любой директории.

Критически важным условием является нахождение ПК и роботизированного пылесоса в одной подсети. Это означает, что оба устройства должны быть подключены к одному роутеру. Если ваш компьютер подключен кабелем, а пылесос по Wi-Fi к тому же роутеру — это нормально. Однако использование гостевой сети Wi-Fi или изоляции клиентов (AP Isolation) сделает невозможным обнаружение устройства. Убедитесь, что брандмауэр не блокирует входящие соединения на порту 54321, который стандартно используется протоколом miIO.

☑️ Проверка готовности к получению токена

Выполнено: 0 / 4

Метод извлечения через Python-скрипт python-miio

Одним из самых надежных способов является использование библиотеки python-miio. Этот метод не требует эмуляции Android и работает напрямую с сетевым протоколом. Для начала установки откройте командную строку (CMD) или терминал и введите команду pip install python-miio. После завершения установки у вас появится доступ к консольной утилите miio.

Следующий шаг — обнаружение устройства в сети. Запустите команду обнаружения, чтобы убедиться, что скрипт "видит" ваш пылесос. Команда выглядит так:

miio discover --timeout 5

В ответ вы получите список устройств с их IP-адресами, идентификаторами Did и, в некоторых случаях, токенами. Однако, если устройство уже сопряжено с аккаунтом Xiaomi, простой запрос может не вернуть токен. В этом случае используется метод перехвата или анализ локального трафика, но часто достаточно просто знать IP и Did. Если токен не отображается сразу, переходим к следующему этапу — эмуляции мобильного приложения.

Для более глубокого анализа можно использовать режим отладки. Создайте файл get_token.py и вставьте в него скрипт для прослушивания сети. Этот метод требует, чтобы вы временно перенаправили трафик или использовали специализированные сниферы, но он дает 100% результат.

Что делать, если python-miio не видит устройство?

Убедитесь, что на устройстве не включен режим "Невидимости" в настройках роутера. Также попробуйте временно отключить антивирус, который может блокировать UDP-пакеты discovery. Иногда помогает статическая установка IP-адреса для пылесоса в настройках роутера.

Использование эмулятора Android и снифера трафика

Поскольку официальное приложение Mi Home скрывает токен, а ПК-версии часто урезаны, самым эффективным методом остается эмуляция Android-среды. Вам потребуется установить эмулятор, например, BlueStacks, NoxPlayer или LDPlayer. Это программное обеспечение создает виртуальный смартфон на вашем компьютере, позволяя устанавливать APK-файлы.

После установки эмулятора, загрузите в него APK-файл старой, проверенной версии приложения Mi Home (часто рекомендуют версии до 5.x или специальные модифицированные версии, такие как Vevs). Современные версии приложения научились сопротивляться простым методам сниффинга. Внутри эмулятора вам нужно будет авторизоваться под своим аккаунтом Xiaomi.

Ключевой момент — настройка снифера трафика. Внутри эмулятора или на уровне хост-ПК необходимо настроить прокси (например, Charles Proxy или Wireshark). Вам нужно перехватить запрос, который приложение отправляет при запуске устройства. В теле этого запроса (обычно это POST-запрос к API Xiaomi) в открытом виде или в легко декодируемом JSON будет содержаться искомый токен. Ищите строку "token" в логах снифера сразу после того, как в приложении откроется статус пылесоса.

Параметр Описание Где искать
Token 32-символьный ключ доступа JSON ответ API / Local Storage
Did Уникальный ID устройства Настройки устройства в приложении
IP Address Локальный адрес в сети Роутер или приложение Mi Home
Model Модель устройства (например, rockrobo.vacuum.v1) Информация об устройстве
📊 Какой метод получения токена оказался для вас самым сложным?
Настройка Python окружения
Установка эмулятора Android
Работа с командной строкой
Настройка снифера трафика

Альтернативный способ: Docker контейнер для Home Assistant

Если вы уже используете систему умного дома Home Assistant, то процесс можно значительно упростить. Существует готовое решение в виде Docker-контейнера, который автоматически сканирует сеть и пытается извлечь токены из авторизованных аккаунтов. Этот метод менее "ручной", но требует наличия работающего Docker-движка на вашем ПК или сервере.

Для запуска используйте официальный образ rytilahti/python-miio или специализированные аддоны для HA. Вам потребуется ввести логин и пароль от аккаунта Xiaomi в конфигурационный файл. Скрипт авторизуется на сервере Xiaomi, получит список всех привязанных устройств и их токены, а затем выведет их в лог-файл. Это особенно удобно, если нужно получить доступ сразу к десятку устройств.

Однако, этот метод несет в себе риски передачи учетных данных стороннему скрипту. Хотя код открыт и проверяется сообществом, с точки зрения безопасности, ввод пароля в локальный скрипт всегда менее безопасен, чем использование облачной авторизации через OAuth. Используйте этот метод только если доверяете источнику кода и понимаете риски.

⚠️ Внимание: Никогда не публикуйте свой токен, IP-адрес или скриншоты с этими данными в открытых источниках. Зная токен и IP, злоумышленник в вашей локальной сети может полностью контролировать устройство, запуская уборку в 3 часа ночи или изменяя настройки зон.

Решение типичных проблем при подключении

Частая проблема — ошибка "Unable to discover device" или таймаут соединения. Это почти всегда указывает на проблему с сетью. Убедитесь, что между вашим ПК и пылесосом нет изоляции. В корпоративных сетях или сетях отелей (captive portals) такие методы не сработают, так как прямое общение между устройствами запрещено правилами роутера.

Еще одна проблема — смена региона. Если ваш аккаунт зарегистрирован на регион "Европа", а пылесос куплен в Китае (или наоборот), некоторые команды могут не проходить. В настройках интеграции или скрипта иногда нужно явно указать сервер (например, de, ru, cn). Протокол miIO чувствителен к задержкам, поэтому пинг до устройства должен быть минимальным.

Если вы обновили прошивку пылесоса, и токен перестал работать, не паникуйте. В редких случаях, при мажорных обновлениях ПО, ключи доступа могут быть ротированы. В этом случае процедуру получения токена придется повторить заново. Также проверьте, не сменился ли IP-адрес устройства, если в роутере не зарезервирован статический IP.

FAQ: Часто задаваемые вопросы

Можно ли получить токен, не используя ПК?

Да, это возможно, но сложнее. Некоторые пользователи используют джейлбрейкнутые iPhone с утилитой Packet Capture или Android-смартфоны с root-правами и приложением HttpCanary. Однако использование ПК с эмулятором или Python-скриптами часто оказывается более стабильным и удобным способом, особенно для анализа больших объемов данных.

Что делать, если токен не подходит для Home Assistant?

Проверьте модель устройства. В интеграции Xiaomi Mi Robot Vacuum нужно правильно выбрать модель (например, roborock.vacuum.s5). Если выбрана неверная модель, команды могут не выполняться, даже если токен верный. Также убедитесь, что в конфигурации указан правильный порт (по умолчанию 54321).

Безопасно ли использовать модифицированные версии Mi Home?

Модифицированные версии (например, от Vevs) популярны в сообществе и считаются безопасными, так как их код открыт. Они позволяют видеть токены прямо в интерфейсе приложения без лишних ухищрений. Однако, устанавливая любое ПО из непроверенных источников, вы теоретически рискуете данными аккаунта. Рекомендуется использовать отдельный, временный аккаунт Xiaomi для таких экспериментов.

Сменится ли токен после сброса пылесоса?

В большинстве случаев токен привязывается к устройству и аккаунту, и простой сброс (Reset) не меняет его. Однако, если вы полностью отвязываете устройство от аккаунта Xiaomi (Delete device) и привязываете заново, токен сгенерируется новый. Старый ключ станет невалидным.