Как добавить устройства Xiaomi в Home Assistant: 3 рабочих способа + решение ошибок

Почему Xiaomi и Home Assistant — идеальная пара для умного дома

Экосистема Xiaomi предлагает одни из самых доступных и функциональных устройств для умного дома — от датчиков открытия дверей до роботов-пылесосов. Но стандартное приложение Mi Home ограничивает возможности автоматизации, привязывая пользователя к облаку и закрытой экосистеме. Здесь на помощь приходит Home Assistant — открытая платформа, которая позволяет объединить все устройства в единую систему с гибкими сценариями, локальным управлением и защитой от облачных сбоев.

В этой статье вы узнаете, как интегрировать устройства Xiaomi (включая бренды Aqara, Mijia, Yeelight) в Home Assistant тремя способами: через официальный плагин, Mi Home Token и протокол MQTT. Мы разберём нюансы для разных типов устройств, типичные ошибки и дадим рекомендации по оптимизации работы системы. Если вы только начинаете работать с Home Assistant, не беспокойтесь — инструкции адаптированы для пользователей любого уровня.

Прежде чем приступить, убедитесь, что у вас:

  • 📱 Установлен Home Assistant (версия 2023.12 или новее). Подойдёт как Home Assistant OS на Raspberry Pi, так и контейнерная версия на NAS.
  • 🔌 Устройства Xiaomi подключены к приложению Mi Home и работают стабильно.
  • 🌐 Доступ к локальной сети (все устройства должны быть в одной подсети с сервером Home Assistant).
📊 Какие устройства Xiaomi вы планируете подключать?
Датчики (движения, открытия, температуры)
Лампы и светильники
Розетки и выключатели
Роботы-пылесосы
Камеры и видеодомофоны

Способ 1: Официальная интеграция через Mi Home (самый простой метод)

Самый надёжный и рекомендуемый способ — использовать официальную интеграцию Xiaomi Miio, которая поддерживает большинство устройств Xiaomi, Aqara и Mijia. Она работает через локальный протокол Miio, не требует облачных серверов и обеспечивает минимальные задержки.

Чтобы добавить интеграцию:

  1. Откройте веб-интерфейс Home Assistant и перейдите в Настройки → Устройства и сервисы → Добавить интеграцию.
  2. В поисковой строке введите Xiaomi Miio и выберите официальный плагин.
  3. Введите IP-адрес устройства (как его узнать — читайте ниже) и токен (получение токена разберём в следующем разделе).
  4. Нажмите Submit и дождитесь появления устройства в списке.

Как узнать IP-адрес устройства Xiaomi:

  • 📡 В приложении Mi Home откройте карточку устройства → Настройки (⚙️) → Об устройстве. В некоторых прошивках IP отображается здесь.
  • 🔍 Если IP не виден, используйте сканер сети (например, Fing или Advanced IP Scanner) и ищите устройства с названиями lumi., miio. или yeelink.
  • 🖥️ В роутере проверьте список подключённых устройств (DHCP-клиенты).

Убедитесь, что устройство включено и подключено к Wi-Fi|Проверьте версию прошивки (некоторые старые версии не поддерживаются)|Отключите VPN/прокси на сервере Home Assistant|Добавьте устройство в"избранное" в Mi Home (иногда помогает при ошибках)

-->

Ограничения метода:

  • ❌ Не все устройства поддерживаются официально (например, некоторые камеры Xiaomi требуют отдельных интеграций).
  • ❌ Для роботов-пылесосов (например, Mi Robot Vacuum) может потребоваться дополнительная настройка valetudo.
  • ❌ Если устройство использует BLE (например, датчики Aqara), потребуется Bluetooth-прокси (разберём ниже).
Какие устройства точно работают через Miio?

Список поддерживаемых устройств можно найти в официальной документации. Среди них:

- Лампы Yeelight и Philips Xiaomi

- Розетки Mi Smart Plug

- Датчики Aqara (температура, влажность, движение)

- Кондиционеры Mi Air Conditioning Companion

- Роботы-пылесосы (с ограничениями)

Способ 2: Получение Mi Home Token (для устройств без официальной поддержки)

Если ваше устройство не поддерживается официальной интеграцией, или вы хотите использовать MQTT для более гибкой настройки, потребуется токен доступа (Mi Home Token). Это уникальный ключ, который позволяет Home Assistant взаимодействовать с устройством напрямую.

Есть два способа получить токен:

Метод 1: Через приложение Mi Home (Android)

Для этого понадобится:

  • 📱 Android-смартфон с установленным Mi Home (версия 6.0.100 или старше).
  • 💻 Компьютер с ADB (Android Debug Bridge).
  • 🔗 Утилита mihome-bin для извлечения токена.

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

  1. Включите режим разработчика на Android: перейдите в Настройки → О телефоне → Номер сборки и нажмите 7 раз.
  2. Вернитесь в Настройки → Система → Для разработчиков и включите Отладка по USB.
  3. Подключите телефон к компьютеру и выполните команду:
    adb backup -f mihome.ab -noapk com.xiaomi.smarthome

    На телефоне подтвердите создание резервной копии (пароль не устанавливайте!).

  4. Используйте утилиту mihome-bin для извлечения токена:
    java -jar mihome-bin.jar mihome.ab

    В результате вы получите файл mihome.db с токенами всех ваших устройств.

Метод 2: Через пакетный сниффер (для iOS или без ADB)

Если у вас iPhone или нет возможности использовать ADB, можно перехватить токен через анализ сетевого трафика:

  • 📡 Установите на компьютер Wireshark или Fiddler.
  • 🔍 Настройте прокси на телефоне (вручную или через Charles Proxy).
  • 📱 Откройте Mi Home и обновите данные устройства (например, включите/выключите лампу).
  • 🔎 В сниффере ищите запросы к домену api.io.mi.com — токен будет в заголовке Authorization.

1. Перезагрузить устройство Xiaomi (вынуть батарейку на 10 секунд для датчиков).

2. Убедиться, что в Mi Home устройство привязано к тому же региону (Китай/Европа/Россия), что и ваш аккаунт.

3. Обновить прошивку устройства до последней версии.

-->

Важно! Токен действует до тех пор, пока вы не сбросите устройство или не измените пароль в Mi Home. Храните его в надёжном месте (например, в менеджере паролей).

Способ 3: Подключение через MQTT (для опытных пользователей)

Протокол MQTT позволяет организовать обмен данными между устройствами Xiaomi и Home Assistant через брокер (например, Mosquitto). Это полезно, если:

  • 🔄 Вы хотите уменьшить нагрузку на Home Assistant (устройства отправляют данные напрямую в брокер).
  • 🌐 У вас распределённая система с несколькими серверами.
  • 🛠️ Вам нужны кастомные топики и формат данных.

Для настройки потребуется:

  1. Установить MQTT-брокер (например, через аддон Mosquitto в Home Assistant).
  2. Настроить устройство Xiaomi на отправку данных в MQTT (для этого часто используется прошивка Tasmota или ESPHome для устройств на ESP8266/ESP32).
  3. Добавить интеграцию MQTT в Home Assistant и настроить подписки на топики.

Пример конфигурации для датчика температуры Aqara в configuration.yaml:

mqtt:

sensor:

- name:"Aqara Temperature"

state_topic:"home/sensor/aqara/temperature"

unit_of_measurement:"°C"

value_template:"{{ value_json.temperature }}"

- name:"Aqara Humidity"

state_topic:"home/sensor/aqara/humidity"

unit_of_measurement:"%"

value_template:"{{ value_json.humidity }}"

Для устройств, которые не поддерживают MQTT"из коробки" (например, лампы Yeelight), можно использовать промежуточный скрипт на Python с библиотекой python-miio, который будет перенаправлять данные из Miio в MQTT.

Подключение BLE-устройств (датчики Aqara, Mi Band и др.)

Многие устройства Xiaomi и Aqara (например, датчики открытия дверей, термометры, браслеты Mi Band) используют протокол Bluetooth Low Energy (BLE). Для их интеграции в Home Assistant потребуется Bluetooth-прокси — устройство, которое будет сканировать эфир и передавать данные серверу.

Варианты реализации:

Способ Требуемое оборудование Плюсы Минусы
ESP32 с ESPHome Плата ESP32 (например, NodeMCU-32S) + антенна Низкая цена, гибкая настройка Требует пайки и прошивки
Raspberry Pi с BlueZ Raspberry Pi 3/4/5 или Pi Zero W Стабильная работа, поддержка множества устройств Высокое энергопотребление
Готовые USB-адаптеры Адаптер CSR 4.0 или BCM20702A Простота подключения Ограниченный радиус действия

Для настройки ESP32 с ESPHome:

  1. Установите аддон ESPHome в Home Assistant.
  2. Создайте новую конфигурацию для ESP32 с компонентом esp32_ble_tracker.
  3. Добавьте устройства в список сканирования:
    esp32_ble_tracker:
    

    scan_parameters:

    interval: 300ms

    window: 30ms

    active: true

    sensor:

    - platform: xiaomi_lywsd03mmc

    mac_address:"XX:XX:XX:XX:XX:XX"

    temperature:

    name:"Temperature"

    humidity:

    name:"Humidity"

    battery_level:

    name:"Battery"

  4. Загрузите прошивку на ESP32 и разместите её рядом с датчиками.

Решение типичных ошибок при подключении Xiaomi к Home Assistant

Даже при точном следовании инструкциям могут возникать ошибки. Рассмотрим самые распространённые и способы их устранения.

Ошибка:"Cannot connect to device"

Причины и решения:

  • 🔌 Устройство не в сети: Проверьте, что устройство включено и подключено к тому же Wi-Fi, что и сервер Home Assistant. Для датчиков на батарейках убедитесь, что заряд не разряжен.
  • 🔒 Неверный токен: Убедитесь, что токен скопирован полностью (без пробелов). Попробуйте получить его заново.
  • 🌍 Региональные ограничения: Некоторые устройства (например, Aqara) требуют привязки к серверам Китая. В Mi Home измените регион на Mainland China (но учтите, что это может сбросить все устройства!).
  • 🔄 Устаревшая прошивка: Обновите прошивку устройства через Mi Home. Для роботов-пылесосов может потребоваться ручное обновление через Mi Home Token.

Ошибка:"Unsupported device"

Если устройство не поддерживается официальной интеграцией:

  • 🔍 Проверьте список поддерживаемых устройств в документации.
  • 🛠️ Используйте MQTT или кастомные компоненты (например, xiaomi_ble для BLE-устройств).
  • 📦 Для роботов-пылесосов установите Valetudo (альтернативная прошивка с открытым API).

Ошибка:"Timeout while connecting"

Возникает при медленном ответе устройства. Решения:

  • ⚡ Проверьте качество Wi-Fi (устройства Xiaomi плохо работают на частоте 5 GHz — используйте 2.4 GHz).
  • 📡 Уменьшите расстояние между устройством и роутером.
  • ⏳ Увеличьте таймаут в конфигурации Home Assistant:
    xiaomi_miio:
    

    devices:

    192.168.1.100:

    token: YOUR_TOKEN

    timeout: 15

Как сбросить устройство Xiaomi к заводским настройкам?

1. Для розеток и ламп: удерживайте кнопку включения 5-10 секунд до мигания индикатора.

2. Для датчиков: извлеките батарейку, нажмите и удерживайте кнопку сброса (если есть), затем вставьте батарейку обратно.

3. Для роботов-пылесосов: удерживайте кнопки Home и Spot 3 секунды.

После сброса устройство нужно заново добавить в Mi Home и получить новый токен.

Оптимизация работы Xiaomi-устройств в Home Assistant

После успешного подключения устройств стоит настроить их для максимальной эффективности. Вот несколько рекомендаций:

1. Настройка опроса устройств

По умолчанию Home Assistant опрашивает устройства каждые 30 секунд, что может создавать нагрузку на сеть. Оптимизируйте интервал в зависимости от типа устройства:

  • 🌡️ Датчики температуры/влажности: достаточно опрашивать раз в 5-10 минут.
  • 💡 Лампы и розетки: можно оставить 30 секунд (для быстрого реагирования).
  • 🚪 Датчики открытия: используйте binary_sensor с триггером по событию (не требует постоянного опроса).

Пример настройки в configuration.yaml:

xiaomi_miio:

devices:

192.168.1.100:

token: YOUR_TOKEN

scan_interval: 300 # 5 минут

2. Локальное управление vs. облако

По возможности используйте локальное управление (через Miio или BLE), чтобы:

  • ⚡ Снизить задержки (команды выполняются мгновенно).
  • 🔒 Исключить зависимость от серверов Xiaomi (актуально при проблемах с интернетом).
  • 🛡️ Повысить конфиденциальность (данные не уходят в облако).

Исключение: камеры Xiaomi (например, Mi Home Security Camera) часто требуют облачного подключения через интеграцию Xiaomi Camera или FFmpeg.

3. Автоматизации с устройствами Xiaomi

Примеры полезных автоматизаций:

  • 🌅 Умное освещение: включение ламп Yeelight при закате (используйте триггер sun.sun).
  • 🚪 Безопасность: уведомление в Telegram при срабатывании датчика открытия двери.
  • 🌡️ Климат-контроль: включение кондиционера Mi Air Conditioning при температуре выше 25°C.
  • 🤖 Уборка по расписанию: запуск робота-пылесоса Mi Robot Vacuum по будням в 10:00.

Пример автоматизации для датчика движения:

automation:

- alias:"Включить свет при движении"

trigger:

platform: state

entity_id: binary_sensor.motion_sensor_158d000xxxxxx

to:"on"

condition:

- condition: sun

after: sunset

before: sunrise

action:

service: light.turn_on

target:

entity_id: light.yeelight_color1

data:

brightness: 255

color_temp: 400

FAQ: Частые вопросы по интеграции Xiaomi и Home Assistant

🔹 Можно ли подключить камеру Xiaomi к Home Assistant без облака?

Да, но с оговорками. Для большинства камер (например, Mi Home Security Camera 360°) потребуется:

  1. Использовать интеграцию FFmpeg с прямым потоком RTSP (если камера поддерживает локальный протокол).
  2. Установить кастомную прошивку (например, Dafang-Hacks для моделей на чипе Hi3518E).
  3. Настроить MQTT для передачи событий движения.

Официальная интеграция Xiaomi Camera работает только через облако.

🔹 Почему датчики Aqara отключаются от Home Assistant?

Частая проблема BLE-устройств. Причины:

  • Слабый сигнал: разместите Bluetooth-прокси ближе к датчикам (максимум 10 метров без препятствий).
  • Конфликт каналов Wi-Fi: если роутер работает на канале 1-6, а BLE использует 37-39, могут возникать помехи. Попробуйте сменить канал Wi-Fi на 11-13.
  • Разряженная батарея: датчики Aqara перестают отправлять данные при напряжении ниже 2.7V.

Решение: используйте ESP32 с внешней антенной и увеличьте интервал сканирования до 60 секунд.

🔹 Как обновить прошивку устройства Xiaomi через Home Assistant?

Прямого способа нет, но можно:

  • Использовать Mi Home для проверки обновлений (большинство устройств обновляются автоматически).
  • Для роботов-пылесосов: прошить Valetudo и обновлять вручную через веб-интерфейс.
  • Для ламп Yeelight: использовать утилиту yeelight в Python:
    pip install yeelight
    

    yeelight discover

    yeelight --ip 192.168.1.100 --update

🔹 Можно ли управлять Xiaomi-устройствами через голосовых помощников (Алиса, Google Assistant)?summary>

Да, но требуется дополнительная настройка:

  1. Для Алисы: используйте интеграцию Yandex Smart Home в Home Assistant и настройте синхронизацию устройств.
  2. Для Google Assistant: активируйте Google Assistant SDK в настройках Home Assistant и свяжите аккаунт.
  3. Для Siri/HomeKit: установите аддон HomeKit Bridge.

Учтите, что для голосового управления устройства должны быть доступны извне (настройте Nabu Casa или reverse proxy).

🔹 Как перенести устройства Xiaomi с одного сервера Home Assistant на другой?

Алгоритм действий:

  1. Экспортируйте конфигурацию устройств из старого сервера (раздел Настройки → Устройства и сервисы).
  2. Скопируйте файлы конфигурации (configuration.yaml, secrets.yaml) на новый сервер.
  3. Убедитесь, что IP-адреса устройств не изменились (или обновите их в конфигурации).
  4. Перезагрузите Home Assistant и проверьте подключение.

Если используете MQTT, перенастройте брокер на новом сервере.