Интеграция умных пылесосов Xiaomi, Roborock или Dreame в единую систему управления умным домом, такую как Home Assistant или HomeKit, часто требует получения уникальных ключей доступа. Без этих данных ваш умный дом не сможет отправлять команды устройству в обход облачных серверов производителя. Основными параметрами для локального управления являются Tokеn (токен доступа) и IP-адрес устройства в локальной сети.
Процесс получения этих данных может показаться сложным для новичка, но на самом деле он сводится к выполнению последовательных действий через мобильное приложение или сторонний софт. В этой статье мы разберем все актуальные способы, от использования специальных плагинов до ручного извлечения данных из логов системы. Вам не потребуются глубокие знания программирования, достаточно внимательно следовать инструкциям.
Почему это так важно? Облачные решения часто имеют задержки, а при отключении интернета пылесос становится «глупым». Локальное управление через miio протокол обеспечивает мгновенный отклик и работу без внешней сети. Давайте рассмотрим, как получить необходимые параметры для вашей модели.
Зачем нужен токен и IP-адрес для Xiaomi Vacuum
Многие пользователи ошибочно полагают, что стандартного приложения Mi Home достаточно для полного контроля. Однако для создания сложных сценариев, например, запуска уборки при уходе всех из дома или остановки при обнаружении протечки воды, требуется прямая связь. IP-адрес указывает, где именно в вашей сети находится устройство, а Tokеn служит цифровым ключом, шифрующим команды.
Протокол miIO, используемый экосистемой Xiaomi, базируется на обмене зашифрованными сообщениями. Если вы попытаетесь отправить команду без правильного токена, устройство просто проигнорирует запрос. Это сделано в целях безопасности, чтобы соседи или злоумышленники не могли управлять вашей техникой.
Почему токен меняется?
Токен привязывается к конкретному Mi-аккаунту и региону. Если вы сбросите пылесос или привяжете его к другому аккаунту, токен изменится, и интеграция перестанет работать до обновления ключа.
Знание этих параметров открывает доступ к расширенным функциям, которые часто скрыты в официальном софте. Вы сможете настраивать виртуальные стены, управлять мощностью всасывания в разных комнатах и получать детальную статистику карт в реальном времени.
Подготовка: что потребуется перед началом
Прежде чем приступать к извлечению данных, необходимо убедиться, что ваша сеть и устройства готовы к работе. Локальное управление возможно только тогда, когда смартфон и пылесос находятся в одной подсети. Убедитесь, что на роутере отключено изолирование клиентов (AP Isolation), если оно включено.
Вам понадобится компьютер (Windows, macOS или Linux) или смартфон с правами суперпользователя (для некоторых методов). Также критически важно знать регион, который вы выбрали при первоначальной настройке пылесоса в приложении Mi Home. Ошибка в выборе региона приведет к тому, что токен будет получен неверный или не получится подключиться к серверу.
☑️ Проверка готовности к настройке
Рекомендуется зафиксировать текущий IP-адрес за устройством в настройках роутера. Это предотвратит ситуацию, когда после перезагрузки маршрутизатора пылесос получит новый адрес, и интеграция с умным домом разорвется. Статический IP упрощает жизнь в долгосрочной перспективе.
Способ 1: Использование плагина для Home Assistant (Xiaomi Cloud Map Extractor)
Наиболее популярным и удобным способом для владельцев серверов Home Assistant является использование интеграции Xiaomi Cloud Map Extractor или стандартной интеграции Xiaomi Miio. Этот метод не требует сложных манипуляций с командной строкой на начальном этапе.
Вам потребуется получить данные для входа в облако Xiaomi (логин и пароль) и идентификатор устройства. После добавления интеграции в конфигурационный файл configuration.yaml, система сама попытается связаться с серверами Xiaomi и извлечь токен. Однако, этот метод работает нестабильно, если включена двухфакторная аутентификация или используется сервер за пределами Китая/Европы.
Если автоматическое получение не сработало, можно воспользоваться скриптом miio на Python, который часто идет в комплекте с документацией интеграции. Он позволяет выполнить запрос к облаку и вывести список всех устройств с их токенами в читаемом виде.
Способ 2: Получение токена через Android эмулятор и mitmproxy
Этот метод считается «золотым стандартом», так как он работает независимо от серверов Xiaomi и региона. Суть заключается в перехвате сетевого трафика между приложением Mi Home и сервером. Для этого используется инструмент mitmproxy и эмулятор Android, например, NoxPlayer или BlueStacks.
Сначала необходимо установить сертификат mitmproxy на эмулятор, чтобы иметь возможность расшифровывать HTTPS трафик. Затем в приложении Mi Home нужно прописать настройки прокси, соответствующие IP-адресу вашего компьютера. После этого любое действие в приложении (например, включение пылесоса) будет генерировать запрос, содержащий токен.
В логах mitmproxy нужно искать запросы к доменам вида api.io.mi.com или api.mi.com. В теле запроса (JSON) содержится поле token. Это и есть искомая 32-символьная строка. Несмотря на кажущуюся сложность, этот метод дает 100% результат даже для новых моделей.
| Параметр | Описание | Где найти |
|---|---|---|
| Tokеn | 32-символьный ключ доступа | В JSON-ответе сервера (поле token) |
| IP-адрес | Локальный адрес устройства | В приложении Mi Home или роутере |
| Did | Уникальный ID устройства | В информации об устройстве в Mi Home |
| Region | Регион сервера (cn, ru, eu) | При настройке аккаунта |
Способ 3: Использование Python библиотеки python-miio
Для продвинутых пользователей, знакомых с командной строкой, отличным решением станет утилита python-miio. Она позволяет взаимодействовать с устройством напрямую. Если у вас уже есть токен (например, полученный через облако), вы можете проверить его и узнать IP, выполнив команду обнаружения.
Запустите сканирование сети командой miio discover. Утилита попытается найти все устройства Xiaomi в локальной сети. Однако, без токена она покажет только IP-адрес и модель. Для получения токена через этот инструмент все равно потребуется предварительная подготовка через облачный метод или эмулятор.
miio --ip 192.168.1.55 --token 1234567890abcdef1234567890abcdef info
Эта команда выведет подробную информацию о состоянии пылесоса, если токен верный. Вы увидите уровень заряда, состояние фильтра, версию прошивки и текущий режим работы. Это лучший способ проверить работоспособность ключа перед добавлением устройства в Home Assistant.
⚠️ Внимание: Убедитесь, что брандмауэр на вашем компьютере не блокирует UDP-порт
54321. Именно через этот порт идет локальное общение с пылесосом. Если порт закрыт, команды просто не дойдут до устройства.
Поиск IP-адреса через роутер и приложение Mi Home
Найти IP-адрес проще всего через интерфейс вашего роутера. Зайдите в список подключенных клиентов (DHCP Client List) и найдите устройство по имени. Обычно пылесосы Xiaomi называются miio- followed by цифры, или имеют название модели, например, roborock.vacuum.c1.
Альтернативный способ — использование приложения Mi Home. Зайдите в настройки пылесоса, выберите пункт «О устройстве» или «Настройки Wi-Fi». Там часто отображается текущий IP-адрес. Однако, если вы сменили роутер, адрес мог измениться, поэтому проверка через роутер надежнее.
Для стабильной работы умного дома крайне желательно зарезервировать этот адрес. В настройках роутера найдите опцию «Static DHCP» или «Address Reservation» и привяжите MAC-адрес пылесоса к конкретному IP. Это избавит вас от необходимости обновлять конфигурацию после каждого отключения электричества.
Что делать, если IP сменился?
Если вы не зарезервировали адрес и он изменился, просто обновите IP в конфигурации интеграции Home Assistant или в настройках плагина. Токен при этом менять не нужно, он остается постоянным.
Типичные ошибки и troubleshooting
Одной из самых частых проблем является ошибка «Token invalid» или «Device offline». Это часто случается, если пылесос переподключился к сети и сменил IP, а в конфигурации остался старый адрес. Вторая причина — смена пароля от Wi-Fi или региона в аккаунте Xiaomi.
Также пользователи сталкиваются с проблемой тайм-аута при опросе устройства. Это может указывать на то, что пылесос находится в режиме сна и не отвечает на запросы, либо сигнал Wi-Fi слишком слаб в точке установки базы. Убедитесь, что уровень сигнала не ниже -70 dBm.
⚠️ Внимание: Не пытайтесь получить токен, пока пылесос находится в процессе уборки или обновления прошивки. В эти моменты устройство может быть недоступно для внешних запросов или блокировать новые соединения.
Если вы используете Docker для запуска Home Assistant, убедитесь, что контейнер запущен в режиме network: host. Без этого режима широковещательные запросы для обнаружения устройств могут не проходить через границы сети контейнера, и система просто «не увидит» ваш вакуум.
Часто задаваемые вопросы (FAQ)
Можно ли получить токен без root-прав на Android?
Да, можно. Использование эмулятора на ПК (например, NoxPlayer) с программой mitmproxy не требует root-прав на реальном телефоне. Также некоторые плагины для Home Assistant умеют вытаскивать токен через облако, используя только логин и пароль.
Что делать, если токен перестал работать?
Токен может измениться, если вы сбросили пылесос до заводских настроек или привязали его к другому аккаунту Mi. В таком случае процедуру получения токена нужно пройти заново. Просто обновить его в настройках интеграции недостаточно.
Работает ли это с пылесосами Roborock и Dreame?
Да, экосистема Xiaomi едина. Протокол miIO используют большинство суббрендов, включая Roborock, Dreame, Viomi и Deerma. Инструкция универсальна для всех устройств, управляемых через приложение Mi Home.
Нужен ли интернет для работы через локальный токен?
Нет, не нужен. После получения токена и настройки интеграции, управление осуществляется напрямую по локальной сети. Интернет потребуется только для обновления карт в облако (если эта функция настроена) или для голосового управления через внешние ассистенты.