Как узнать IP и токен робота-пылесоса Xiaomi через компьютер: 5 проверенных методов

Интеграция робота-пылесоса 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-адрес нужен для прямого подключения к пылесосу по локальной сети. Его можно получить тремя способами, не прибегая к стороннему ПО.

Самый простой метод — проверить список подключённых устройств в настройках вашего роутера. Для этого:

  1. Откройте веб-интерфейс роутера (обычно по адресу 192.168.0.1 или 192.168.1.1).
  2. Авторизуйтесь (логином/паролем с наклейки на корпусе роутера).
  3. Перейдите в раздел DHCP, Локальная сеть или Подключённые устройства.
  4. Найдите в списке устройство с названием roborock, miio или vacuum.

Если пылесос не отображается, попробуйте перезагрузить его (удерживайте кнопку питания 5 секунд) и обновите страницу роутера. Альтернативный способ — использовать команду arp -a в Командной строке Windows (подробнее в таблице ниже).

Метод Инструкция Плюсы Минусы
Через роутер Просмотр списка DHCP-клиентов Не требует ПО, работает на любом роутере IP может меняться при перезагрузке
Команда arp -a Выполнить в CMD после ping пылесоса Быстро, без доступа к роутеру Требует знание MAC-адреса
Приложение Fing Сканирование сети в мобильном/десктопном приложении Показывает все устройства с названиями Нужно установить ПО

Для фиксации IP-адреса (чтобы он не менялся) настройте статическую аренду DHCP в роутере, привязав MAC-адрес пылесоса к выбранному IP. MAC можно узнать на наклейке под крышкой устройства или через Mi Home (Настройки устройства → Общая информация).

📊 Какой робот-пылесос Xiaomi у вас?
Mi Robot Vacuum-Mop 2
Roborock S7
Viomi V3
Dreame D9
Другой

2. Получение токена через Mi Home (официальный метод)

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

Вам понадобится:

  • 📱 Смартфон с установленным Mi Home и привязанным пылесосом.
  • 💻 Компьютер с Python 3.6+ и библиотекой mitmproxy.
  • 📡 Общая сеть: телефон и ПК должны быть подключены к одному Wi-Fi.

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

  1. Установите mitmproxy через команду:
    pip install mitmproxy
  2. Настройте прокси на смартфоне:
    • Wi-Fi → Настройки сети → Дополнительно → Прокси-сервер → Ручной.
    • Укажите IP вашего ПК (узнать через ipconfig в CMD) и порт 8080.
  • Запустите 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). Этот способ требует включённого режима разработчика на смартфоне.

    Что нужно сделать:

    1. Активируйте Отладку по USB на телефоне (Настройки → О телефоне → Номер сборки — тапните 7 раз, затем вернитесь в Настройки → Для разработчиков).
    2. Подключите телефон к ПК и подтвердите разрешение на отладку.
    3. Установите ADB на компьютер (скачайте Platform Tools от Google).
    4. Выполните команды:
      adb shell
      

      pm 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.

    Инструкция:

    1. Установите библиотеку:
      pip install python-miio
    2. Авторизуйтесь и получите токен:
      miio --discover --sync-seed
      

      miio --cloud-token YOUR_PHONE_NUMBER YOUR_PASSWORD

      (замените YOUR_PHONE_NUMBER и YOUR_PASSWORD на данные вашего аккаунта Xiaomi).

    3. Скрипт вернёт список устройств с их токенами.
    4. Если вы используете двухфакторную аутентификацию, добавьте параметр --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, проверьте:

      • 🔌 Правильность IP (пылесос должен быть в той же сети, что и ПК).
      • 🔑 Корректность токена (символы в верхнем/нижнем регистре имеют значение!).
      • 🔒 Отсутствие брандмауэра/антивируса, блокирующего порт 54321.

      Для проверки через 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

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

      • 📱 Версию приложения Mi Home (обновите до последней).
      • 🌍 Регион аккаунта (некоторые токены привязаны к серверам China Mainland, Russia и т.д.).
      • 🔄 Версию прошивки пылесоса (устаревшие версии могут не поддерживать API).

      Критическая информация: Токены, полученные через неофициальные методы, могут перестать работать после обновления прошивки пылесоса или смены пароля в аккаунте Xiaomi. В этом случае процедуру придётся повторить.

      FAQ: Ответы на популярные вопросы

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

      Да, с помощью мобильных приложений вроде Packet Capture (Android) или HTTP Toolkit (iOS). Принцип тот же — перехват трафика Mi Home через прокси. Однако на iPhone потребуется установка сертификата, что сложнее, чем на Android.

      Почему пылесос не отвечает на команды по IP, хотя токен верный?

      Вероятные причины:

      • Пылесос подключён к облаку Xiaomi, а не к локальной сети (проверьте в Mi Home раздел "Локальная сеть").
      • IP-адрес изменился (закрепите статический IP в роутере).
      • Порт 54321 заблокирован провайдером или антивирусом.

      Попробуйте отправить команду через облако: miio --cloud vacuum.run.

      Как защитить токен от утечки?

      Соблюдайте меры безопасности:

      • Не делитесь токеном в открытых источниках (форумы, GitHub).
      • Храните его в зашифрованных файлах или менеджерах паролей (KeePass, 1Password).
      • Ограничьте доступ к локальной сети (настройте гостевой Wi-Fi для IoT-устройств).
      • Регулярно меняйте пароль от аккаунта Xiaomi.

    Работает ли этот метод для Roborock S7 MaxV?

    Да, Roborock S7 MaxV (как и другие модели на платформе MiOT) поддерживает те же протоколы. Однако для некоторых функций (например, управления камерой) может потребоваться дополнительный токен для облачных сервисов. Его можно получить через miio --cloud-token.

    Что делать, если Xiaomi заблокировала аккаунт после извлечения токена?

    Блокировка маловероятна, но если это произошло:

    1. Попробуйте восстановить доступ через страницу восстановления.
    2. Напишите в поддержку Xiaomi с объяснением, что подозреваете взлом (не упоминайте токены!).
    3. Создайте новый аккаунт и перенастройте пылесос.

    В будущем используйте официальные методы интеграции (например, Mi Home API для разработчиков).