Поиск по базе знаний

Как извлечь токены устройств Xiaomi для интеграции в Home Assistant

Умные бытовые приборы от компании Xiaomi и ее многочисленных суббрендов (таких как Roborock, Smartmi, Yeelight, Viomi) пользуются огромной популярностью благодаря отличному соотношению цены и функциональности. Однако по умолчанию большинство этих устройств работают через китайские или глобальные облачные серверы производителя. Это приводит к заметным задержкам при передаче команд и зависимости от наличия интернет-соединения. Для интеграции этих приборов в локальную систему Home Assistant по безопасному протоколу miio требуется получить уникальный 32-значный ключ шифрования — так называемый miio-токен доступа.

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

Шаг 1. Первоначальная привязка устройства в приложении Mi Home

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

  1. Установите на смартфон официальное приложение Mi Home.
  2. Авторизуйтесь под своей учетной записью. При этом обратите внимание на выбранный регион (например, «Материковый Китай» или «Россия»). Устройства, предназначенные для разных рынков, должны быть привязаны к соответствующему региону.
  3. Добавьте устройство в приложение, следуя подсказкам на экране. Убедитесь, что оно успешно управляется со смартфона.
  4. Не сбрасывайте Wi-Fi на устройстве после этого, иначе облачный сервер сгенерирует новый токен, и старый ключ перестанет работать.

Шаг 2. Запуск утилиты Xiaomi Cloud Tokens Extractor

Существует несколько методов извлечения токенов: перехват сетевого трафика, использование старых модифицированных версий Mi Home или резервное копирование базы данных Android. Однако самым надежным и простым способом в настоящее время является использование консольной утилиты Xiaomi Cloud Tokens Extractor, написанной на языке Python. Она напрямую подключается к серверам Xiaomi и считывает токены из вашей учетной записи.

Для этого выполните следующие действия:

  1. Скачайте готовую скомпилированную версию утилиты для вашей операционной системы (Windows, macOS или Linux) с официального репозитория на GitHub.
  2. Откройте терминал или командную строку в папке с загруженным файлом.
  3. Запустите утилиту командой token_extractor (или дважды кликните по файлу в проводнике).
  4. Программа попросит ввести имя пользователя (или ID аккаунта Mi) и пароль.
  5. Далее укажите код региона. Если вы используете серверы в Китае, введите cn, если в России — ru, для Европы — de. Если вы не уверены, выберите вариант all, чтобы утилита опросила все доступные серверы.

TIP

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

Шаг 3. Фиксация локальных IP-адресов и токенов

После успешной авторизации программа выведет в окно консоли структурированный список всех устройств, привязанных к вашему аккаунту.

Пример вывода программы:

Device Name: Робот-пылесос
IP Address: 192.168.1.45
MAC Address: 00:1A:2B:3C:4D:5E
Token: d41d8cd98f00b204e9800998ecf8427e
Model: roborock.vacuum.s5

Аккуратно скопируйте 32-значную строку из поля Token и запишите текущий IP-адрес устройства.

IMPORTANT

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

Шаг 4. Настройка интеграции в Home Assistant и проброс в Алису

Теперь, имея на руках IP-адрес и токен, мы можем добавить устройство в локальный умный дом.

  1. Откройте Home Assistant, перейдите в Настройки -> Устройства и службы.
  2. Нажмите Добавить интеграцию и найдите Xiaomi Miio.
  3. Выберите тип вашего устройства (например, пылесос или увлажнитель).
  4. Введите IP-адрес и вставьте скопированный токен. Нажмите Отправить.
  5. Устройство добавится в систему, и вы получите полный локальный контроль над ним.

Для того чтобы управлять этим устройством голосом, пробросьте его в Алису. Настройка шлюзов взаимодействия описана в статье о подключении Xiaomi Gateway к Home Assistant. После настройки шлюза добавьте сущность в фильтр Yandex Smart Home в вашем configuration.yaml и обновите конфигурацию устройств в приложении Яндекса.

Возможные проблемы и их решение

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

Если после успешного добавления устройства в Home Assistant статус сущности отображается как unavailable, проверьте настройки сетевого экрана (брандмауэра) на вашем роутере. Устройства Xiaomi общаются с сервером по портам UDP 54321 и 54322, и эти порты должны быть открыты внутри вашей локальной сети.

Инструкция по настройке

1

Подключение прибора к экосистеме Mi Home

Добавьте ваше устройство Xiaomi (пылесос, увлажнитель или лампу) в официальное мобильное приложение Mi Home. Зафиксируйте регион учетной записи.

2

Запуск утилиты извлечения токенов

Скачайте кроссплатформенную программу Xiaomi Cloud Tokens Extractor. Запустите ее на своем компьютере и введите учетные данные от аккаунта Xiaomi.

3

Копирование токена и определение IP

Найдите в полученном списке нужное устройство, скопируйте его уникальный 32-значный токен доступа (Token) и запишите локальный IP-адрес прибора.

4

Настройка интеграции в Home Assistant

Перейдите в веб-интерфейс Home Assistant, добавьте локальную интеграцию для вашего устройства (например, Xiaomi Miio) и укажите IP-адрес и скопированный токен.