Интеграция устройств Xiaomi с платформой Home Assistant открывает новые возможности для автоматизации умного дома, но часто сталкивается с техническими нюансами. Несмотря на популярность бренда, многие пользователи теряются в настройках configuration.yaml, получении токенов или решении проблем с подключением. Эта статья поможет разобраться во всех этапах — от подготовки аккаунта Mi Home до тонкой настройки датчиков и реле в интерфейсе Home Assistant.
Особенность устройств Xiaomi (включая суббренд Aqara) заключается в их закрытой экосистеме, которая требует обходных путей для интеграции со сторонними системами. Мы рассмотрим два основных метода: официальный через Mi Home Integration (с ограничениями) и альтернативный через Mi Home Token Extractor (с полным контролем). Также вы узнаете, как работать с устройствами, которые не поддерживаются "из коробки", и как обойти региональные ограничения.
1. Подготовка: что нужно знать перед подключением
Прежде чем приступать к интеграции, убедитесь, что ваша система соответствует минимальным требованиям:
- 📱 Версия Home Assistant не ниже 2023.12 (рекомендуется 2026.4+ для полной совместимости с Xiaomi)
- 🌐 Аккаунт Mi Home с привязанными устройствами (регион должен совпадать с регионом покупки устройств!)
- 🔧 Доступ к файлам конфигурации Home Assistant (через
Samba Share,SSHилиFile Editor) - 📡 Стабильное подключение к интернету (для получения токенов и первоначальной синхронизации)
Критический момент — региональные ограничения Xiaomi. Устройства, купленные в Китае (cn), не будут корректно работать с серверами eu, ru или us. Если вы столкнулись с ошибкой "Device not found", сначала проверьте регион в приложении Mi Home:
⚠️ Внимание: Изменение региона аккаунта Mi Home после привязки устройств приведёт к их отвязке! Сначала перенастройте регион в приложении, затем привязывайте устройства заново.
Для устройств Aqara (например, Aqara Hub M2 или Aqara Door Sensor) процесс интеграции аналогичен, но требует отдельного компонента aqara в configuration.yaml. Мы рассмотрим этот случай отдельно в разделе про альтернативные методы.
2. Способ 1: Официальная интеграция через Mi Home
Самый простой, но ограниченный метод — использование встроенного компонента xiaomi_miio. Он поддерживает большинство устройств, но не предоставляет доступ к расширенным функциям (например, настройке параметров Zigbee-сети через Aqara Hub).
Шаги для подключения:
- Откройте файл
configuration.yamlи добавьте:
xiaomi_miio:
username: !secret mi_home_username
password: !secret mi_home_password
discovery_retry: 5
cache_devices: true
Где !secret — ссылка на файл secrets.yaml (рекомендуется для безопасности). Если вы не используете secrets, замените на прямые логин/пароль от Mi Home.
После перезагрузки Home Assistant в разделе Настройки → Устройства и сервисы появится новая интеграция. Однако этот метод имеет существенные ограничения:
| Проблема | Пояснение | Решение |
|---|---|---|
| Не все устройства отображаются | Официальный API ограничивает доступ к некоторым моделям (например, Xiaomi Robot Vacuum S7) | Использовать токен (способ 2) |
| Задержки обновления данных | Опросы устройств происходят раз в 5-10 минут | Настроить scan_interval в конфигурации |
| Нет доступа к Zigbee-устройствам | Через xiaomi_miio видны только Wi-Fi устройства |
Интегрировать Aqara Hub через zha или deconz |
3. Способ 2: Подключение через токен (полный контроль)
Для устройств, которые не поддерживаются официальной интеграцией, или если вам нужен расширенный функционал (например, управление Zigbee-сетью через Aqara Hub), потребуется токен устройства. Его можно получить несколькими способами:
- 🔑 Через приложение Mi Home (Android) — требует отладки по USB и специального скрипта
- 📱 Через веб-интерфейс Mi Home Token Extractor (самый простой метод)
- 🖥️ Через Python-скрипт
miio-cli— для опытных пользователей
Рассмотрим самый универсальный способ — использование Mi Home Token Extractor (требуется Android-устройство):
Установите приложение Mi Home Token Extractor на Android
Авторизуйтесь в своём аккаунте Mi Home через приложение
Выберите устройство из списка и скопируйте токен
Сохраните токен в безопасном месте (он нужен для configuration.yaml)
Перезагрузите Home Assistant после добавления токена
-->
После получения токена добавьте в configuration.yaml:
fan.xiaomi_miio:
- name: "Xiaomi Air Purifier 3H"
host: 192.168.1.100
token: YOUR_TOKEN_HERE
model: zhimi.airpurifier.mb4
vacuum.xiaomi_miio:
- name: "Xiaomi Robot Vacuum"
host: 192.168.1.101
token: YOUR_TOKEN_HERE
model: roborock.vacuum.s7
Где:
host— локальный IP-адрес устройства (должен быть статичным!)token— полученный 32-значный токенmodel— модель устройства (список поддерживаемых моделей есть в документации Home Assistant)
⚠️ Внимание: Токены устройств Xiaomi могут меняться после обновления прошивки или сброса настроек. Если интеграция перестала работать, получите новый токен.
4. Интеграция Zigbee-устройств (Aqara, MiJia)
Устройства на базе Zigbee (например, датчики Aqara или MiJia) не подключаются напрямую через xiaomi_miio. Для них есть два варианта:
- Через шлюз Aqara Hub (рекомендуется для новичков)
- Через USB-адаптер Zigbee (например, CC2531 или ConBee II) с прошивкой
Zigbee2MQTT
Первый способ проще: подключите Aqara Hub к Home Assistant через токен (как в способе 2), затем добавьте в configuration.yaml:
aqara:
discovery_retry: 3
gateways:
- key: YOUR_AQARA_KEY
Ключ (key) можно найти на задней стороне хаба или получить через приложение Mi Home (раздел "Об устройстве"). После перезагрузки все подключённые к хабу датчики появятся в Home Assistant автоматически.
Для опытных пользователей второй способ даёт больше гибкости: вы сможете управлять Zigbee-сетью напрямую, без зависимости от облака Xiaomi. Однако он требует дополнительной настройки Zigbee2MQTT и ручного сопряжения устройств.
Как узнать модель устройства для configuration.yaml?
Если вы не знаете точную модель устройства для параметра model, выполните команду в терминале Home Assistant:
miio inspect --ip 192.168.1.100 --token YOUR_TOKEN
Где 192.168.1.100 — IP-адрес устройства. В выводе будет строка "model": "your.model.here".
5. Решение распространённых ошибок
Даже при правильной настройке вы можете столкнуться с проблемами. Вот самые частые ошибки и их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Unable to connect to the device |
Устройство недоступно по сети | Проверьте IP-адрес, включите устройство, отключите фаервол |
Invalid token |
Неверный или устаревший токен | Получите новый токен (см. способ 2) |
Device not supported |
Модель устройства не добавлена в Home Assistant | Добавьте модель вручную или обновите Home Assistant |
Timeout error |
Слишком долгое ожидание ответа | Уменьшите discovery_retry или проверьте сеть |
Если устройство подключается, но данные обновляются редко, добавьте в конфигурацию параметр scan_interval:
xiaomi_miio:
scan_interval: 60 # Опрос каждые 60 секунд
Для устройств, которые требуют частого опроса (например, датчики движения), можно уменьшить интервал до 10 секунд, но это увеличит нагрузку на сеть.
6. Автоматизация и примеры использования
После успешного подключения устройств Xiaomi можно создавать автоматизации. Вот несколько практических примеров:
- 💡 Умное освещение: Включать Yeelight при обнаружении движения датчиком Aqara и выключать через 5 минут без движения.
- 🌡️ Климат-контроль: Автоматически включать Xiaomi Air Purifier, если датчик Mi Temperature & Humidity Sensor показывает PM2.5 > 50.
- 🚪 Безопасность: Отправлять уведомление в Telegram, если датчик открытия двери срабатывает в ваше отсутствие.
- 🧹 Уборка: Запускать Roborock по расписанию или когда никто не дома (по данным геолокации).
Пример автоматизации для освещения (добавляется в automations.yaml):
- alias: "Включить свет при движении"
trigger:
platform: state
entity_id: binary_sensor.motion_sensor_158d000xxxxxx
to: "on"
action:
service: light.turn_on
entity_id: light.yeelight_color1_0xxxxxxxx
condition:
condition: sun
after: sunset
before: sunrise
Для устройств с поддержкой Zigbee (например, Aqara Button) можно настроить мультиклики:
- alias: "Управление светом с кнопки"
trigger:
platform: event
event_type: zha_event
event_data:
device_id: 01:23:45:67:89:ab:cd:ef
command: single
action:
service: light.toggle
entity_id: light.living_room
Не забывайте тестировать автоматизации в ручном режиме перед сохранением! Для этого используйте инструмент Developer Tools → Services в интерфейсе Home Assistant.
7. Оптимизация и безопасность
После настройки интеграции стоит позаботиться о безопасности и производительности:
- 🔒 Ограничьте доступ к токенам: Храните их в
secrets.yaml, а не в основном файле конфигурации. - 🔄 Обновляйте Home Assistant: Новые версии часто добавляют поддержку для устройств Xiaomi.
- 📡 Настройте локальную сеть: Привяжите IP-адреса устройств в роутере, чтобы избежать проблем при изменении DHCP.
- 📊 Мониторьте нагрузку: Чрезмерное количество опросов устройств может замедлить систему.
Для устройств, которые поддерживают локальное управление (например, Yeelight), отключите облачную синхронизацию в настройках Mi Home. Это уменьшит задержки и повысит надёжность.
⚠️ Внимание: Если вы используете Xiaomi Camera в Home Assistant, никогда не exposeйте поток видео в интернет без защиты! Настройтеauthдля камеры и используйтеNGINXс SSL для удалённого доступа.
Часто задаваемые вопросы
Можно ли подключить Xiaomi без облака (полностью локально)?
Да, но только для устройств, которые поддерживают протокол Miio по локальной сети. Для этого нужен токен устройства и его локальный IP-адрес. Устройства Zigbee (например, датчики Aqara) требуют шлюз (Aqara Hub), который тоже можно подключить локально через токен.
Полностью облако можно обойти только если использовать альтернативные прошивки (например, OpenMQTTGateway для шлюзов), но это требует продвинутых навыков.
Почему некоторые устройства Xiaomi не отображаются в Home Assistant?
Это может быть связано с:
- Региональными ограничениями (устройство привязано к другому серверу Mi Home)
- Отсутствием поддержки модели в текущей версии Home Assistant
- Устаревшей прошивкой устройства
- Блокировкой портов фаерволом или роутером
Проверьте логи Home Assistant (Developer Tools → Logs) для точной диагностики.
Как обновить прошивку устройства Xiaomi через Home Assistant?
Home Assistant не поддерживает обновление прошивки устройств Xiaomi. Для этого:
- Используйте официальное приложение Mi Home.
- Для некоторых устройств (например, Roborock) есть альтернативные прошивки (
Valetudo), которые можно установить черезSSH.
⚠️ Обновление прошивки может сбросить токен устройства!
Можно ли управлять Xiaomi из Home Assistant через голосовых помощников (Алиса, Google Assistant)?
Да, но для этого нужно:
- Настроить интеграцию Home Assistant с голосовым помощником (например, через
Home Assistant CloudилиNabu Casa). - Убедиться, что устройства Xiaomi экспортированы в Home Assistant как сущности (
entities).
Голосовые команды будут отправляться в Home Assistant, а уже оттуда — на устройства Xiaomi.
Какие устройства Xiaomi лучше всего работают с Home Assistant?
Наиболее стабильно работают:
- 💡 Yeelight (лампы и светильники) — полная локальная поддержка
- 🌡️ Датчики Aqara (температура, движение, открытие) — надёжны при подключении через хаб
- 🧹 Roborock (пылесосы) — хорошая интеграция через токен
- 🔌 Xiaomi Smart Plug (розетки) — простой протокол управления
Проблемные устройства:
- 📷 Камеры Xiaomi — часто требуют ручной настройки RTSP-потока
- 🚪 Xiaomi Door Lock — ограниченная поддержка из-за безопасности