Интеграция робота-пылесоса Xiaomi в системы умного дома или сторонние приложения часто требует знания его IP-адреса и токена доступа. Без этих данных невозможно управлять устройством через Home Assistant, Node-RED или даже некоторые версии Mi Home после смены региона. Но как их получить, если производитель не предоставляет прямых инструментов?
Многие пользователи ошибочно полагают, что для этого нужны root-права на смартфоне или сложные манипуляции с прошивкой. На самом деле IP-адрес можно узнать за 2 минуты через роутер, а токен — извлечь с помощью официальных инструментов Xiaomi или сторонних утилит. В этой статье разберём 5 рабочих методов (включая самый надёжный через Python), актуальных для моделей Mi Robot Vacuum, Viomi, Dreame и других на платформе MiOT.
⚠️ Внимание: Извлечение токена через неофициальные методы может нарушать пользовательское соглашение Xiaomi. Используйте данные только для личных целей — передача токена третьим лицам даёт им полный контроль над вашим устройством.
1. Как узнать IP-адрес робота-пылесоса Xiaomi
IP-адрес нужен для прямого подключения к пылесосу по локальной сети. Его можно получить тремя способами, не прибегая к стороннему ПО.
Самый простой метод — проверить список подключённых устройств в настройках вашего роутера. Для этого:
- Откройте веб-интерфейс роутера (обычно по адресу
192.168.0.1или192.168.1.1). - Авторизуйтесь (логином/паролем с наклейки на корпусе роутера).
- Перейдите в раздел
DHCP,Локальная сетьилиПодключённые устройства. - Найдите в списке устройство с названием roborock, miio или vacuum.
Если пылесос не отображается, попробуйте перезагрузить его (удерживайте кнопку питания 5 секунд) и обновите страницу роутера. Альтернативный способ — использовать команду arp -a в Командной строке Windows (подробнее в таблице ниже).
| Метод | Инструкция | Плюсы | Минусы |
|---|---|---|---|
| Через роутер | Просмотр списка DHCP-клиентов | Не требует ПО, работает на любом роутере | IP может меняться при перезагрузке |
Команда arp -a |
Выполнить в CMD после ping пылесоса |
Быстро, без доступа к роутеру | Требует знание MAC-адреса |
| Приложение Fing | Сканирование сети в мобильном/десктопном приложении | Показывает все устройства с названиями | Нужно установить ПО |
Для фиксации IP-адреса (чтобы он не менялся) настройте статическую аренду DHCP в роутере, привязав MAC-адрес пылесоса к выбранному IP. MAC можно узнать на наклейке под крышкой устройства или через Mi Home (Настройки устройства → Общая информация).
2. Получение токена через Mi Home (официальный метод)
Если пылесос уже привязан к аккаунту Xiaomi, токен можно извлечь из трафика приложения Mi Home без рут-прав. Этот метод работает для большинства моделей, но требует компьютера с Python.
Вам понадобится:
- 📱 Смартфон с установленным Mi Home и привязанным пылесосом.
- 💻 Компьютер с
Python 3.6+и библиотекойmitmproxy. - 📡 Общая сеть: телефон и ПК должны быть подключены к одному Wi-Fi.
Пошаговая инструкция:
- Установите
mitmproxyчерез команду:pip install mitmproxy - Настройте прокси на смартфоне:
- Wi-Fi → Настройки сети → Дополнительно → Прокси-сервер →
Ручной. - Укажите IP вашего ПК (узнать через
ipconfigвCMD) и порт8080.
- Wi-Fi → Настройки сети → Дополнительно → Прокси-сервер →
mitmproxy на ПК и откройте Mi Home на телефоне.api.io.mi.com с параметром did (ID устройства) и token.⚠️ Внимание: Xiaomi может блокировать неофициальные прокси. Если трафик не захватывается, попробуйте использоватьCharles Proxyс сертификатом или метод черезADB(описан ниже).
Установить Python 3.6+
Установить mitmproxy (pip install mitmproxy)
Подключить телефон и ПК к одной сети
Настроить прокси на телефоне (IP ПК:8080)
Открыть Mi Home и перейти в настройки пылесоса-->
3. Альтернативный способ: токен через ADB (для Android)
Если прокси-метод не сработал, можно извлечь токен напрямую из памяти приложения Mi Home с помощью ADB (Android Debug Bridge). Этот способ требует включённого режима разработчика на смартфоне.
Что нужно сделать:
- Активируйте
Отладку по USBна телефоне (Настройки → О телефоне → Номер сборки— тапните 7 раз, затем вернитесь вНастройки → Для разработчиков). - Подключите телефон к ПК и подтвердите разрешение на отладку.
- Установите
ADBна компьютер (скачайте Platform Tools от Google). - Выполните команды:
adb shellpm list packages | grep mihome
run-as com.xiaomi.smarthome dbpath
sqlite3 databases/miio2.db "SELECT token FROM devices WHERE did='DID_УСТРОЙСТВА';"
(замените
DID_УСТРОЙСТВАна ID вашего пылесоса из Mi Home).
ID устройства (did) можно найти в Mi Home:
Профиль → Настройки → Умной домашней сети → Ваше устройство → Общая информация.
Что делать, если ADB не видит устройство?
Если команда adb devices возвращает пустой список:
1. Проверьте, включена ли отладка по USB на телефоне.
2. Установите драйверы для вашей модели (например, Xiaomi USB Drivers).
3. Попробуйте другой USB-кабель (оригинальный, не "зарядный").
4. Перезагрузите телефон и ПК.
5. На некоторых моделях Xiaomi нужно дополнительно разрешить отладку в Настройки → Дополнительно → Для разработчиков → Разрешение отладки USB (выбрать "Всегда разрешать").
4. Извлечение токена через Python-скрипт (для опытных)
Для пользователей, знакомых с Python, есть универсальный скрипт miio-cli, который автоматизирует получение токена. Он работает даже без прокси, но требует знания логина/пароля от аккаунта Xiaomi.
Инструкция:
- Установите библиотеку:
pip install python-miio - Авторизуйтесь и получите токен:
miio --discover --sync-seedmiio --cloud-token YOUR_PHONE_NUMBER YOUR_PASSWORD
(замените
YOUR_PHONE_NUMBERиYOUR_PASSWORDна данные вашего аккаунта Xiaomi). - Скрипт вернёт список устройств с их токенами.
- 🔌 Правильность IP (пылесос должен быть в той же сети, что и ПК).
- 🔑 Корректность токена (символы в верхнем/нижнем регистре имеют значение!).
- 🔒 Отсутствие брандмауэра/антивируса, блокирующего порт
54321. - 📱 Версию приложения Mi Home (обновите до последней).
- 🌍 Регион аккаунта (некоторые токены привязаны к серверам China Mainland, Russia и т.д.).
- 🔄 Версию прошивки пылесоса (устаревшие версии могут не поддерживать API).
- Пылесос подключён к облаку Xiaomi, а не к локальной сети (проверьте в Mi Home раздел "Локальная сеть").
- IP-адрес изменился (закрепите статический IP в роутере).
- Порт
54321заблокирован провайдером или антивирусом. - Не делитесь токеном в открытых источниках (форумы, GitHub).
- Храните его в зашифрованных файлах или менеджерах паролей (KeePass, 1Password).
- Ограничьте доступ к локальной сети (настройте гостевой Wi-Fi для IoT-устройств).
- Регулярно меняйте пароль от аккаунта Xiaomi.
Если вы используете двухфакторную аутентификацию, добавьте параметр --country-code (например, +7 для России).
⚠️ Внимание: Хранение токена в открытом виде опасно — он даёт полный доступ к устройству. Используйте .env-файлы или менеджеры паролей для безопасного хранения.
1. Убедиться, что пароль введён верно (учтите регистр!).
2. Использовать email вместо номера телефона.
3. Временное отключить 2FA в аккаунте Xiaomi (если включена).
4. Обновить библиотеку: pip install --upgrade python-miio-->
5. Проверка работоспособности токена и IP
После получения токена и IP проверьте их корректность, отправив тестовую команду через Python или HTTP-запрос. Например, чтобы получить статус пылесоса:
import miio
vacuum = miio.Vacuum(ip="192.168.1.100", token="YOUR_TOKEN")
print(vacuum.status())
Если команда возвращает ошибку DeviceException, проверьте:
Для проверки через curl (без Python):
curl -X POST -d '{"id":1,"method":"miIO.info","params":[]}' "http://192.168.1.100/miIO/info" -H "Content-Type: application/json"
1. Перезагрузить устройство (удерживайте кнопку питания 10 секунд).
2. Отключить VPN/прокси на ПК.
3. Проверить, не изменился ли IP после перезагрузки роутера (закрепите статический IP в настройках DHCP).-->
6. Частые ошибки и их решения
При работе с токенами и IP пользователи сталкиваются с типичными проблемами. Разберём самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
Invalid token |
Токен неверный или устарел | Получите токен заново (методы 2–4) |
Device not found |
Пылесос выключен или не в сети | Проверьте питание и подключение к Wi-Fi |
Timeout |
Брандмауэр блокирует порт 54321 |
Отключите антивирус или добавьте исключение |
Unsupported device |
Модель пылесоса не поддерживается python-miio |
Обновите библиотеку или используйте miio2-cli |
Если ни один метод не сработал, проверьте:
Критическая информация: Токены, полученные через неофициальные методы, могут перестать работать после обновления прошивки пылесоса или смены пароля в аккаунте Xiaomi. В этом случае процедуру придётся повторить.
FAQ: Ответы на популярные вопросы
Можно ли узнать токен без компьютера?
Да, с помощью мобильных приложений вроде Packet Capture (Android) или HTTP Toolkit (iOS). Принцип тот же — перехват трафика Mi Home через прокси. Однако на iPhone потребуется установка сертификата, что сложнее, чем на Android.
Почему пылесос не отвечает на команды по IP, хотя токен верный?
Вероятные причины:
Попробуйте отправить команду через облако: miio --cloud vacuum.run.
Как защитить токен от утечки?
Соблюдайте меры безопасности:
Работает ли этот метод для Roborock S7 MaxV?
Да, Roborock S7 MaxV (как и другие модели на платформе MiOT) поддерживает те же протоколы. Однако для некоторых функций (например, управления камерой) может потребоваться дополнительный токен для облачных сервисов. Его можно получить через miio --cloud-token.
Что делать, если Xiaomi заблокировала аккаунт после извлечения токена?
Блокировка маловероятна, но если это произошло:
- Попробуйте восстановить доступ через страницу восстановления.
- Напишите в поддержку Xiaomi с объяснением, что подозреваете взлом (не упоминайте токены!).
- Создайте новый аккаунт и перенастройте пылесос.
В будущем используйте официальные методы интеграции (например, Mi Home API для разработчиков).