Роботы-пылесосы Xiaomi стали неотъемлемой частью умных домов, но для их полноценной интеграции с системами автоматизации (например, Home Assistant или Node-RED) часто требуются два ключевых параметра: IP-адрес устройства в локальной сети и токен аутентификации. Без них невозможно управлять пылесосом через API, настраивать сложные сценарии или использовать альтернативные прошивки.
В этой статье мы разберём все актуальные способы получения этих данных — от стандартных методов через официальное приложение Mi Home до продвинутых техник с использованием Python-скриптов и анализа сетевого трафика. Особое внимание уделим моделям Xiaomi Mi Robot Vacuum, Viomi V3 и Dreame D9, так как алгоритмы для них могут отличаться. Если вы столкнулись с ошибками типа Invalid token или пылесос не отображается в локальной сети — здесь вы найдёте решения.
Почему нужны IP-адрес и токен пылесоса Xiaomi
IP-адрес и токен — это "паспорт" вашего робота-пылесоса в локальной сети. Без них:
- 🔌 Невозможно подключение к сторонним системам умного дома (например, Home Assistant или OpenHab).
- 📱 Не работают альтернативные приложения вроде Valetudo или DreameBot, которые предлагают расширенные функции.
- 🔧 Закрыт доступ к API для автоматизации уборки по расписанию или по триггерам (например, при открытии двери).
- ⚙️ Невозможно обновить прошивку вручную или установить кастомную (например, Valetudo RE).
Официальное приложение Mi Home скрывает эти данные, так как Xiaomi стремится к централизации управления через свои серверы. Однако энтузиасты нашли обходные пути — их мы и рассмотрим ниже.
Способ 1: Получение IP-адреса через роутер
Самый простой способ найти IP-адрес пылесоса — посмотреть список подключённых устройств в админ-панели вашего роутера. Алгоритм действий:
- Подключите пылесос к зарядной станции и включите его.
- Убедитесь, что робот подключён к той же сети Wi-Fi, что и ваш компьютер/смартфон.
- Откройте админ-панель роутера (обычно по адресу
192.168.0.1или192.168.1.1). - Найдите раздел
Подключённые устройства(илиDHCP Clients). - В списке ищите устройство с названием
roborock.vacuum.,miio:илиviomi.vacuum.*.
Если название устройства неочевидно, можно:
- 🔍 Отключить пылесос от сети и посмотреть, какое устройство исчезнет из списка.
- 📡 Использовать приложения для сканирования сети, например Fing (Android/iOS) или Advanced IP Scanner (Windows).
IP-адрес может быть динамическим (меняться при каждом подключении) или статическим. Для стабильной работы рекомендуется закрепить IP за пылесосом в настройках роутера (опция DHCP Reservation или Static Lease).
Способ 2: Извлечение токена через Mi Home (официальный метод)
До 2021 года токен можно было легко получить через приложение Mi Home, но после обновлений Xiaomi ужесточила защиту. Тем не менее, для некоторых регионов (например, China Mainland) и старых версий приложения метод всё ещё работает.
Инструкция для Android:
Откройте Mi Home и перейдите в настройки пылесоса|Нажмите на три точки в правом верхнем углу|Выберите "О программе" или "Информация об устройстве"|Найдите строку "Token" (может называться "API Token" или "Local Token")|Скопируйте значение (обычно 32 символа)
-->
Если строка с токеном отсутствует:
- 📱 Попробуйте сменить регион в Mi Home на
China Mainland(в настройках аккаунта). - ⏳ Установите старую версию приложения (например,
5.6.52или6.1.102). - 🔄 Переподключите пылесос к приложению (иногда токен появляется после повторной авторизации).
⚠️ Внимание: Смена региона в Mi Home может привести к сбросу настроек пылесоса. Перед этим экспортируйте карты уборки и сохраните важные параметры.
Почему Xiaomi скрывает токен?
Xiaomi ограничивает доступ к токену, чтобы пользователи не могли обходить облачные серверы компании. Это связано с:
1. Контролем экосистемы — Xiaomi хочет, чтобы все устройства управлялись через её приложения.
2. Безопасностью — открытый токен позволяет злоумышленникам получить доступ к устройству, если оно подключено к незащищённой сети.
3. Монополией на данные — облачное управление позволяет Xiaomi собирать статистику использования (например, площади уборки, частоту включений).
Способ 3: Использование Python-скрипта для извлечения токена
Если официальные методы не сработали, можно извлечь токен с помощью скрипта на Python, который перехватывает сетевой трафик между приложением Mi Home и серверами Xiaomi. Для этого понадобится:
- 💻 Компьютер с
Python 3.6+. - 📱 Android-смартфон с установленным Mi Home.
- 🔌 Программа для перехвата трафика (Fiddler, Charles Proxy или mitmproxy).
Пошаговая инструкция:
- Установите
mitmproxyи настройте его на компьютере:pip install mitmproxy - На смартфоне настройте прокси-сервер на IP вашего компьютера (порт
8080). - Запустите
mitmproxyи авторизуйтесь в Mi Home. - Откройте в браузере
http://mi.com— это нужно для перехвата куки. - Используйте скрипт
miio-cliдля извлечения токена:miio --discover --sync-see-other-devices
Если скрипт выдаёт ошибку Device not found, проверьте:
- 🔌 Подключение пылесоса и компьютера к одной сети.
- 🔒 Отсутствие брандмауэра, блокирующего порт
54321(используется протокол MiIO). - 📡 Корректность IP-адреса пылесоса (можно указать вручную:
miio --ip 192.168.1.100 --token YOUR_TOKEN info).
| Модель пылесоса | Поддерживаемый протокол | Пример команды для теста |
|---|---|---|
| Xiaomi Mi Robot Vacuum 1S | MiIO | miio --ip 192.168.1.100 --token YOUR_TOKEN vacuum |
| Roborock S5/S6 | MiIO (устаревший) / RRMap | mirobo --ip 192.168.1.100 --token YOUR_TOKEN status |
| Viomi V3 | MiIO | miio --ip 192.168.1.100 --token YOUR_TOKEN viomi_vacuum |
| Dreame D9 | MiIO (частично) | miio --ip 192.168.1.100 --token YOUR_TOKEN dreame_vacuum |
Способ 4: Извлечение токена через бэкап Mi Home (Android)
На Android-устройствах можно извлечь токен из резервной копии приложения Mi Home. Этот метод работает, даже если токен не отображается в интерфейсе.
Инструкция:
- Установите Mi Home и авторизуйтесь.
- Подключите пылесос к приложению.
- Создайте бэкап данных Mi Home через
Настройки → Аккаунт → Резервное копирование. - Скачайте файл бэкапа на компьютер (обычно имеет расширение
.mi). - Используйте утилиту
mihome-binary-parserдля извлечения токена:npm install -g mihome-binary-parsermihome-binary-parser your_backup.mi
В результате вы получите JSON-файл с данными всех устройств, где для каждого будет указан "token": "YOUR_TOKEN_HERE".
⚠️ Внимание: Бэкапы Mi Home содержат личные данные (включая историю уборок и карты помещений). Не передавайте файлы бэкапа третьим лицам и удаляйте их после извлечения токена.
Способ 5: Получение токена через Home Assistant (автоматически)
Если вы используете Home Assistant, токен можно извлечь автоматически через интеграцию Xiaomi Miio. Для этого:
- Добавьте в файл
configuration.yamlстроку:vacuum:- platform: xiaomi_miio
host: 192.168.1.100
token: !secret xiaomi_vacuum_token
- Перезагрузите Home Assistant.
- В логах (
Developer Tools → Logs) найдите строку с ошибкой подключения — там будет указан текущий токен (если он неверный).
Если токен отсутствует, Home Assistant может предложить сгенерировать его автоматически при первом подключении. Для этого:
- 🔄 Удалите пылесос из Mi Home и подключите заново.
- 🔑 В момент подключения Home Assistant перехватит токен (если включён режим
discovery).
Распространённые ошибки и их решения
При работе с IP и токеном пылесоса Xiaomi пользователи часто сталкиваются с типичными проблемами. Рассмотрим самые частые:
| Ошибка | Возможная причина | Решение |
|---|---|---|
Invalid token |
Токен устарел или неверный | Получите новый токен или проверьте регион в Mi Home |
Device not found |
Пылесос не в сети или неверный IP | Проверьте подключение к Wi-Fi и корректность IP-адреса |
Timeout error |
Брандмауэр блокирует порт 54321 |
Отключите брандмауэр или добавьте исключение для Python |
Unsupported device |
Модель пылесоса не поддерживается miio-cli |
Используйте специализированные утилиты (например, mirobo для Roborock) |
Если пылесос не отвечает на команды через API, проверьте:
- 🔌 Подключение к сети — индикатор Wi-Fi на пылесосе должен гореть зелёным.
- 🔄 Версию прошивки — некоторые модели (например, Roborock S7) требуют обновления для работы с локальным API.
- 🛡️ Настройки роутера — отключите
AP Isolationи проверьте, что устройства видят друг друга в локальной сети.
Как проверить связь с пылесосом?
Вы можете проверить доступность пылесоса по IP с помощью команды ping:
ping 192.168.1.100
Если ответов нет, проблема в сетевом подключении. Если пинг проходит, но команды не выполняются, проверьте токен или порт (54321).
FAQ: Частые вопросы по IP и токену пылесоса Xiaomi
Можно ли использовать один токен для нескольких пылесосов?
Нет, токен уникален для каждого устройства. Если у вас несколько роботов-пылесосов Xiaomi, для каждого нужно получать отдельный токен. При этом IP-адреса также будут разными (если только вы не назначили их вручную через DHCP Reservation).
Что делать, если токен перестал работать?
Токен может стать недействительным после:
- Сброса пылесоса к заводским настройкам.
- Обновления прошивки (иногда Xiaomi принудительно сбрасывает токены).
- Удаления устройства из аккаунта Mi Home.
В этом случае нужно получить новый токен одним из описанных выше методов.
Можно ли управлять пылесосом без токена?
Да, но с ограничениями:
- Через официальное приложение Mi Home (без доступа к API).
- Через голосовых помощников (Алиса, Google Assistant), если пылесос привязан к аккаунту.
- Через физические кнопки на корпусе пылесоса.
Однако для автоматизации, интеграции с умным домом или использования альтернативных прошивок токен обязателен.
Как защитить токен от утечки?
Токен даёт полный контроль над пылесосом, поэтому:
- 🔐 Храните его в зашифрованном виде (например, в
secrets.yamlдля Home Assistant). - 🌐 Не передавайте токен через незащищённые каналы (например, в открытых репозиториях на GitHub).
- 🔄 Периодически меняйте токен (например, после обновления прошивки).
Если вы подозреваете, что токен скомпрометирован, сбросьте пылесос к заводским настройкам и получите новый.
Работают ли эти методы для пылесосов Dreame?
Да, но с оговорками:
- Модели Dreame (например, D9, D10) используют модифицированный протокол MiIO.
- Для них может потребоваться специализированная утилита
dreame-vacuumвместо стандартнойmiio-cli. - Токен извлекается теми же методами, но некоторые команды API могут отличаться.
Перед использованием проверьте совместимость вашей модели на GitHub-репозитории проекта.