Как узнать токен у пылесоса Xiaomi: полное руководство

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

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

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

Зачем нужен токен и где он применяется

Основная цель получения токена — выход за рамки экосистемы производителя. Стандартное приложение Mi Home или Xiaomi Home работает через облачные серверы компании, что иногда приводит к задержкам команд или невозможности управления при отсутствии интернета. Локальное управление через токен позволяет отправлять команды напрямую в локальную сеть, обеспечивая мгновенный отклик.

Чаще всего токен требуется для интеграции с популярной платформой Home Assistant. Это позволяет создавать сложные сценарии автоматизации, недоступные в родном приложении. Например, запускать уборку только тогда, когда умные часы фиксируют, что вы покинули дом, или отправлять уведомление в Telegram, если контейнер для пыли полон.

⚠️ Внимание: Токен дает полный доступ к управлению устройством. Никогда не передавайте этот код посторонним лицам и не публикуйте скриншоты с ним в открытых источниках.

Кроме того, знание токена позволяет использовать специализированные библиотеки для Python или Node.js, создавая собственные программы управления. Вы сможете анализировать карты уборки, устанавливать виртуальные стены там, где это не позволяет приложение, или даже модифицировать firmware устройства, хотя последнее несет риски.

📊 Какую платформу умного дома вы используете?
Home Assistant
HomeKit
Яндекс Умный дом
Не использую
Другое

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

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

Один из способов — использование плагина для Mi Home, который умеет вытаскивать токены подключенных устройств. Для этого может потребоваться установка приложения из сторонних источников, так как в Google Play такие версии часто отсутствуют. После установки плагина и авторизации под вашим аккаунтом, список устройств с их токенами станет доступен для просмотра.

Альтернативный вариант требует наличия прав root на устройстве. Если ваш смартфон рутирован, вы можете получить доступ к базе данных приложения Mi Home, где хранятся все ключи. Путь к файлу обычно выглядит как /data/data/com.xiaomi.mihome/databases/mihome.db. Открыв эту базу данных через SQLite-редактор, можно найти таблицу с устройствами и скопировать значение токена.

Риски использования модифицированных приложений

Использование неофициальных версий приложений Mi Home может привести к блокировке аккаунта со стороны серверов Xiaomi. Рекомендуется использовать для этих целей отдельный, второстепенный аккаунт, на который не завязаны критически важные устройства.

Если вы не хотите рисковать основным аккаунтом или возиться с root-правами, существуют десктопные утилиты, которые эмулируют вход в аккаунт и вытаскивают токены. Они работают по принципу перехвата сетевых запросов или анализа локального кэша после синхронизации.

Способ 2: Использование Python-скрипта на компьютере

Для пользователей, которые не хотят устанавливать сомнительные приложения на телефон, идеальным решением станет использование компьютера. Метод основан на работе библиотеки Python, которая взаимодействует с серверами Xiaomi. Вам потребуется установить Python на компьютер (Windows, macOS или Linux) и выполнить несколько команд в терминале.

Сначала необходимо установить саму библиотеку. Откройте командную строку или терминал и введите команду для установки пакетного менеджера, если он еще не установлен, а затем саму библиотеку miio. Это займет всего несколько секунд при наличии стабильного интернет-соединения.

pip install python-miio

После установки библиотеки нужно выполнить команду для извлечения токена. Вам потребуется ввести ваш email и пароль от аккаунта Xiaomi. Скрипт отправит запрос на сервер, получит список устройств и выведет их токены в консоль.

miio extract-tokens --username ваш_email --password ваш_пароль

☑️ Подготовка к extraction токена

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

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

Способ 3: Метод через iOS и резервное копирование

Владельцы iPhone также могут получить токен, хотя процесс здесь немного отличается из-за закрытости операционной системы. Основной метод заключается в создании локальной резервной копии устройства через iTunes (или Finder на macOS) и последующем анализе файлов этой копии.

Суть метода в том, что приложение Mi Home хранит токены в локальном файле конфигурации. При создании незашифрованной резервной копии (что возможно на некоторых версиях iOS или через специальные утилиты типа iMazing), эти файлы можно извлечь. Однако, с усилением безопасности iOS, этот метод становится все менее рабочим без джейлбрейка.

Более надежный способ для iOS — использование приложения Home Assistant с интеграцией Xiaomi, если она поддерживает автоматическое обнаружение, или использование macOS-утилит, которые могут читать данные приложений. Также существует метод с использованием ПК и эмулятора Android, описанный в следующем разделе, который часто проще для пользователей Apple.

Метод Сложность Необходимое ПО Риски
Android (Root) Высокая SQLite Editor Потеря гарантии
Python Script Средняя Python, Terminal Блокировка аккаунта
iOS Backup Высокая iMazing, iTunes Не работает на новых iOS
Эмулятор Низкая BlueStacks, Nox Минимальные

Способ 4: Эмулятор Android на ПК

Универсальным решением, подходящим для всех операционных систем, является запуск эмулятора Android на компьютере. Программы вроде BlueStacks, NoxPlayer или LDPlayer создают виртуальное Android-устройство, в которое можно установить приложение Mi Home.

После установки эмулятора и входа в свой Google-аккаунт, скачайте и установите Mi Home из Play Market внутри эмулятора. Авторизуйтесь в приложении под своим аккаунтом Xiaomi. После того как устройства подгрузятся, можно переходить к извлечению токена.

В зависимости от возможностей эмулятора, вы можете либо получить root-права через настройки самого эмулятора (обычно это галочка в параметрах запуска), либо использовать встроенные средства отладки. Если root получен, путь к базе данных будет стандартным: /data/data/com.xiaomi.mihome/databases/mihome.db. Файл можно скопировать на рабочий стол ПК и открыть любым просмотрщиком SQLite.

Если получение root-прав в эмуляторе невозможно, можно попробовать использовать ADB (Android Debug Bridge). Эмуляторы обычно поддерживают подключение по ADB через localhost. Команда adb shell позволит перейти в командную строку виртуального устройства и попробовать считать файлы конфигурации.

Интеграция токена в Home Assistant

После того как вы успешно добыли 32-значный код, наступает этап его практического применения. Чаще всего токены вводят в конфигурационный файл Home Assistant. Это позволяет добавить пылесос как нативное устройство, доступное для управления со скоростью света.

Для добавления устройства через интерфейс YAML необходимо знать модель вашего пылесоса, его IP-адрес в локальной сети и, конечно же, токен. IP-адрес лучше закрепить в настройках роутера, чтобы он не менялся после перезагрузки, иначе интеграция перестанет работать.

⚠️ Внимание: При изменении пароля от Wi-Fi или сбросе настроек роутера, пылесос может получить новый IP-адрес. Обязательно используйте статическую привязку IP (DHCP Reservation) в роутере.

Пример конфигурации для файла configuration.yaml выглядит следующим образом. Обратите внимание на отступы, они критичны для YAML:

vacuum:

- platform: xiaomi_miio

host: 192.168.1.50

token: 40символоввашеготокена

name: Xiaomi Vacuum

После добавления конфигурации необходимо перезагрузить Home Assistant. Если все сделано правильно, в интерфейсе появится новая сущность пылесоса со всеми атрибутами: статусом уборки, уровнем заряда, уровнем шума и ошибкой, если таковая возникла.

Частые проблемы и их решение

Процесс получения токена не всегда проходит гладко. Пользователи часто сталкиваются с ошибками авторизации, особенно если в аккаунте включена двухфакторная защита. В таких случаях стандартные скрипты могут не сработать, требуя использования временных токенов или отключения защиты на время процедуры.

Еще одна распространенная проблема — несовместимость региона. Если ваш аккаунт зарегистрирован в регионе"Китай", а вы пытаетесь использовать европейские сервера для извлечения токена, данные могут не определиться. Убедитесь, что в приложении и скриптах выбран правильный регион сервера.

Также стоит помнить, что некоторые модели пылесосов, особенно выпущенные для внутреннего рынка Китая, могут иметь измененную структуру протокола. Для таких устройств стандартная библиотека python-miio может требовать указания конкретной модели вручную, например, rockrobo.vacuum.v1 или dreame.vacuum.p2009.

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

Если вы сменили пароль от аккаунта Xiaomi или сделали полный сброс пылесоса (зажав кнопки на корпусе), старый токен станет недействительным. Вам придется заново пройти процедуру извлечения токена любым из описанных выше методов.

Вопросы и ответы (FAQ)

Можно ли получить токен без компьютера, только с телефона?

Да, это возможно, если у вас Android с root-правами. В этом случае можно использовать файловый менеджер с доступом к системным папкам и SQLite-редактор. Без root-прав на телефоне получить токен напрямую практически невозможно, потребуется использование эмулятора на ПК или облачных сервисов.

Опасен ли токен для безопасности моего аккаунта?

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

Изменится ли токен после обновления прошивки пылесоса?

В большинстве случаев токен привязывается к устройству и не меняется после обновления программного обеспечения. Однако, если обновление включает в себя сброс настроек сети или изменение протокола безопасности, токен может измениться. Рекомендуется проверять актуальность токена после крупных обновлений.

Работает ли этот метод для пылесосов Viomi и Dreame?

Да, принцип работы у суббрендов Xiaomi (Viomi, Dreame, Roborock) схож, так как они используют единую экосистему Mi IoT. Методы извлечения токена через Python-скрипты или эмуляторы работают для большинства моделей этих производителей.

Где хранится токен после получения?

Токен нигде не хранится в открытом виде на серверах после авторизации, он находится в памяти устройства и приложения. Именно поэтому его нужно скопировать и сохранить вручную в надежном месте (менеджер паролей, зашифрованный файл), так как восстановить его через"забытый пароль" невозможно.