Xiaomi miio получение токена для доступа к устройству

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

Чтобы программа могла управлять лампой, розеткой или пылесосом, вам нужен токен, или цифровой пароль вашего устройства. Производитель не показывает этот токен в стандартном интерфейсе приложения, потому что это мера безопасности.

Таким образом, для интеграции устройств в продвинутые системы умного дома необходимо получить токен самостоятельно. Этот процесс обычно не так сложен, как кажется, и обычно требует всего нескольких действий на смартфоне и компьютере.

Далее мы рассмотрим основные методы получения этого токена. Вы можете выбрать то, что вам нравится, и открыть для своих устройств Xiaomi новые возможности.

Универсальный способ #1 — Xiaomi cloud token extractor

Самый простой и быстрый способ получения token’а на данный момент для всех устройств компании Xiaomi использование утилиты Xiaomi cloud token extractor. В случае OS Windows это утилита, в случае использования Unix/Linux это скрипт, написанный на Python. Проект выложен на GitHub.

Устaновка Pyton3 и необходимые компоненты для Ubuntu и Raspberry Pi будут выглядеть следующим образом:

$ sudo apt-get install python3 python3-pip $ pip3 install pycryptodome pybase64 requests

Скачиваем скрипт:

$ wget https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/token_extractor.py

Запуск скрипта:

$ python3 token_extractor.py

Утилиту Xiaomi-cloud-tokens-extractor/releases/latest/download/token_extractor.exe можно скачать с GitHub: https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/releases/latest/download/token_extractor.exe и затем запустить ее на Windows.

При запуске скрипт или утилита попросит ввести учетную запись Xiaomi. Необходимо:

  • E-mail или User ID Xiaomi
  • Пароль от учетной записи
  • Выбрать страну привязки устройств, можно оставить пустым, и программа проверит для всех перечисленных стран

Результат:

$ python3 token_extractor.py Username (email or user ID): <strong>my_xiaomi_mail_or_user_id</strong> Password: <strong>my_xiaomi_password</strong> Country (one of: ru, us, tw, sg, cn, de) Leave empty to check all available: Logging in… Logged in. Devices found for country "cn": ——— NAME: Xiaomi Mi Gateway v.2 ID: XXXXXXXX IP: 192.168.XXX.XXX TOKEN: 1234567890abcdef1234567890abcdef MODEL: lumi.gateway.v3 ——— NAME: Mi IR Remote control ID: XXXXXXXXX IP: 192.168.XXX.XXX TOKEN: 1234567890abcdef1234567890abcdef MODEL: chuangmi.remote.v2 ——— NAME: Miji Robot Vacuum Cleaner 1C ID: XXXXXXXXX IP: 192.168.XXX.XXX TOKEN: 1234567890abcdef1234567890abcdef MODEL: dreame.vacuum.mc1808

Огромным плюсом этого метода является то, что помимо подключенных Wi-Fi устройств, утилита показывает подключенные Bluetooth устройства, подключенные к шлюзам ZigBee устройства, созданные пульты для Mi IR Remote control.

——— NAME: Xiaomi Mijia BLE Temperature and Humidity Sensor ID: blt.3.ubsv8hlXXXXX IP: XXX.XXX.XXX.XXX TOKEN: 1234567890abcdef123456789 MODEL: cleargrass.sensor_ht.dk1 ——— NAME: Aqara Smart Wall Socket ID: lumi.158d000XXXXXXX IP: TOKEN: MODEL: lumi.ctrl_86plug.aq1

Это удобно использовать для определения идентификационных данных ZigBee устройств.

Универсальный способ #2 — модифицированный Mi Home от vevs для Android

Ми Дом от Vevs — это модифицированный Mi Дом с переводом действий, условий и статусов на русский и английский языки. Подробнее об этом можно узнать в блоге автора.

  • Удаляем оригинальный Mi Home
  • Скачиваем и устанавливаем последнюю версию Mi Home от vevs для Android
  • Запускаем установленное приложение Mi Home
  • Авторизуемся в приложении Mi Home
  • Открываем плагин необходимого устройства
  • Настройки -> Дополнительные настройки -> Информация о сети
  • В самом низу поле «Токен»

Чтобы подключить устройство Xiaomi к системе miio и использовать сторонние приложения для управления им, необходимо получить особый токен, который действует как пароль для подтверждения доступа. Это обычно доступно в настройках устройства в приложении Mi Home, особенно если вы используете китайский сервер или инструменты для разработчиков. Этот токен необходим для интеграции в умные домашние системы, такие как Домовой помощник. Важно быть осторожным, избегать передачи токена третьим лицам и помнить, что смена токена может прервать подключение.

Универсальный способ #3 — Mi Home v5.4.49 для Android

Хотя метод достаточно старый, он все еще работает. Логи взаимодействия устройств Mi Home в версии v5.4.49 для Android хранятся в папке /Smarthome/logs в виде текстовых файлов. Следующий алгоритм действий:

  • Скачиваем и устанавливаем Mi Home v5.4.49 для Android. Если есть второе устройство, то лучше все операции делать на нем, иначе придется удалить текущую версию Mi Home
  • Запускаем установленное приложение Mi Home
  • Авторизуемся в приложении Mi Home
  • Для надежности открываем необходимое устройство в Mi Home
  • В менеджере файлов переходим в папку /Smarthome/logs
  • Открываем текстовый log файл
  • Просматриваем содержимое log файла, ищем по слову token

В папке может быть несколько текстовых файлов, просматриваем их все или удаляем всё содержимое папки и запускаем Mi Home v5.4.49 заново.

По результатам просмотра log файла:

  • Для Xiaomi Mi Gateway v.2 — {"did":"XXXXXXXX","token":"1234567890abcdef1234567890abcdef","longitude":"XX.XXXXXXX","latitude":"XX.XXXXXXX","name":"Xiaomi Mi Gateway v.2",
  • Для Mi IR Remote control — {"did":"XXXXXXXXX","token":"1234567890abcdef1234567890abcdef","longitude":"XX.XXXXXXXX","latitude":"XX.XXXXXXXX","name":"Mi IR Remote control"

Для моего пылесоса Mijia Robot Vacuum Cleaner 1C токен тоже есть в лог файле, но в плагин управления попасть нельзя т.к. не поддерживается версией приложения. Но это не важно, главное результат получить token.

Список устройств и методов, с помощью которых я получил токен

Xiaomi Mi Gateway 2 (DGNWG02LM)

Методы номер один, номер два и номер три, описанные выше, могут быть использованы для получения токена.

Получить токен для региона Китай можно в программе Mi Home любой версии, пока писал статью на версии Mi Home v5.9.19 обновился плагин для шлюза, из которого похоже вырезали доступ к режиму разработчика. Но в версии Mi Home v.5.8.40 плагин шлюза версии v.2.77.1, для включения режима разработчика и получения сведений он нам сгодится.

  • Скачиваем и устанавливаем Mi Home v5.8.40 для Android. Если есть второе устройство, то лучше все операции делать на нем, иначе придется удалить текущую версию Mi Home
  • Запускаем установленное приложение Mi Home
  • Авторизуемся в приложении Mi Home
  • Открываем плагин шлюза Xiaomi Mi Gateway 2
  • Нажимаем три точки в правом верхнем углу
  • Сведения -> Информация о шлюзе, если пункты меню «Протокол связи локальной сети» и «Информация о шлюзе» отсутствуют, то пять раз нажимаем на пункт Версия плагина: 2.XX.X пока не появятся указанные пункты меню.

Пункт 1

Рисунок 2

Рисунок 3

Рисунок 4

Статья 5

Xiaomi Mijia Universal Remote control (MJYKQ01CM)

Методы номер один, номер два и номер три, описанные выше, могут быть использованы для получения токена.

Устройство USB2TTL и паяльник могут вытащить токену из устройства. Отклеиваем нижнюю резиновую противоскользящую вставку и откручиваем четыре болта под ней. По схеме мы припаиваем провода к техническим контактам (GND0, TX0, RX0) и подключаем шайбу к USB2TTL:

ВНИМАНИЕ! Все, что вы делаете, делаете только на свой страх и риск, и автор статьи не несет никакой ответственности за любые последствия, которые могут возникнуть в результате действий, описанных в этой статье.

USB-to-TTL Mi IR Remote Control
GND GND0
RX TX0
TX RX0

После подключения USB2TTL к компьютеру мы открываем программу PuTTY и выбираем тип подключения Serial. Затем мы указываем порт COM, на который подключен адаптер UART и указываем скорость подключения 115200.

Вы можете настроить ведение логов для всех выведенных данных в меню Session и указать путь к файлу логов. Мы нажимаем кнопку «Открыть».

После подключения штатного питания устройства PuTTy начнет показывать данные через несколько секунд. Поиск в логе по слову token предпочтительнее, поскольку информация отображается достаточно быстро.

Xiaomi Mijia Bedside Lamp (MJCTD01YL)

Из трех альтернативных систем автоматизации, которые я опробовал, только OpenHAB требует токенов доступа к лампе. Методы номер один, номер два и номер три, описанные выше, могут быть использованы для получения токенов.

Все, что вам нужно знать, чтобы получить токен устройств Xiaomi, можно найти здесь. Вы получите тот самый «ключ», выполнив шаги с дампом сети или специальными утилитами, хотя процесс не самый простой. Поскольку токен является ключом к вашему устройству, обращайтесь с ним как с ценностью.

Он необходим для настройки любой локальной интеграции, будь то помощник дома или другие системы умного дома, поэтому его следует хранить в безопасном месте. С ним ваши устройства будут максимально эффективны, работая быстро и автономно, без задержек в облаке.

Теперь вы можете выйти за рамки обычного приложения Mi Home и полностью контролировать свои устройства. Удачи в дальнейшей перепланировке и создании уютного дома!

Поделиться с друзьями
Алексей Волков

Инженер систем автоматизации. Более 8 лет проектирую и внедряю системы умного дома для жилых и коммерческих объектов.

Оцените автора
Добавить комментарий