Десятки устройств Xiaomi Mijia с поддержкой Bluetooth Low Energy (BLE) — от термогигрометров LYWSD03MMC до датчиков движения RTCGQ02LM — могут работать напрямую с Home Assistant без дополнительных хабов. Но их интеграция в интерфейс Lovelace UI часто вызывает вопросы: как правильно настроить сканирование, избежать потери связи и создать информативные карточки? Эта статья закрывает все пробелы — от выбора адаптера BLE до тонкой настройки автоматических сценариев.
Мы разберём уникальный метод стабилизации соединения через параметр `periodic_update_interval`, который уменьшает задержки обновления данных с 10+ минут до 30 секунд, а также покажем, как обойти ограничения прошивки устройств Xiaomi с помощью кастомных компонентов. В конце вас ждёт готовый код для виджетов температуры, графика влажности и уведомлений о движении — с возможностью адаптации под любой дизайн.
1. Какие устройства Xiaomi Mijia поддерживают BLE и совместимы с Home Assistant
Не все гаджеты Xiaomi с маркировкой Mijia работают по протоколу BLE. Вот актуальный список проверенных моделей (2026 год), которые можно интегрировать в Lovelace UI:
- 🌡️ Датчики климата: LYWSD03MMC (термогигрометр с дисплеем), LYWSD02 (без экрана), MHO-C401 (для теплиц)
- 🚪 Датчики открытия: MCCGQ02HL (дверные/оконные), SJWS01LM (водонепроницаемые)
- 👤 Датчики движения: RTCGQ02LM (с подсветкой), RTCGQ11LM (mini-версия)
- 💡 Умные кнопки: WXKG01LM (однокнопочная), WXKG12LM (двойная)
⚠️ Внимание: Устройства с индексом _AQARA (например, WSDCGQ11LM) используют Zigbee, а не BLE, и требуют хаба Xiaomi Gateway или адаптера CC2531. Их настройка принципиально отличается!
Перед покупкой проверьте маркировку на коробке или в приложении Mi Home: иконка Bluetooth ⚙️ подтверждает поддержку BLE. Также обратите внимание на версию прошивки — устройства с ПО старше 2021 года могут требовать обновления через Mi Home перед интеграцией.
2. Требования к оборудованию: какой BLE-адаптер выбрать
Для стабильного сканирования устройств Xiaomi Mijia BLE нужен адаптер с поддержкой Bluetooth 5.0+ и чипсетом Nordic nRF52 или CSR8510. Вот сравнительная таблица проверенных моделей:
| Модель адаптера | Чипсет | Макс. устройств | Радиус действия (м) | Цена (2026) |
|---|---|---|---|---|
| CC2652P (рекомендуемый) | TI CC2652 | 50+ | до 100 | ~3500 ₽ |
| ESP32-WROOM | Espressif ESP32 | 20-30 | до 50 | ~1200 ₽ |
| Asus USB-BT500 | Realtek RTL8761B | 10-15 | до 20 | ~900 ₽ |
| Raspberry Pi встроенный | Broadcom BCM4345 | 5-8 | до 10 | 0 ₽ (если уже есть) |
🔹 Критические нюансы:
- 🔌 Адаптеры на CSR4.0 (например, дешёвые китаские "нано"-модули) не совместимы с Home Assistant из-за отсутствия поддержки
hci. - 📶 Для домов площадью >100 м² потребуется несколько адаптеров с перекрывающимися зонами покрытия.
- ⚡ CC2652P потребляет ~0.5W в активном режиме — учитывайте это при выборе блока питания для Raspberry Pi.
Если вы используете Home Assistant OS на виртуальной машине (например, Proxmox или VMware), передача USB-адаптера в гостевую систему должна быть настроена через PCI Passthrough. Иначе сканирование BLE работать не будет!
3. Настройка Home Assistant для работы с Xiaomi BLE
Интеграция устройств Xiaomi Mijia BLE осуществляется через официальный компонент ble_monitor или кастомный passive_ble_monitor (рекомендуется для стабильности). Вот пошаговая инструкция:
Установите HACS (Home Assistant Community Store), если ещё не сделали этого. Инструкция: официальная документация.
В HACS найдите и установите репозиторий
Passive BLE Monitorот custom-components.Добавьте в файл
configuration.yamlследующий код (заменитеhci0на ваш адаптер):ble_monitor:bt_interface: 'hci0'
devices:
- mac: 'XX:XX:XX:XX:XX:XX' # MAC-адрес вашего устройства
restore_state: true
periodic_update_interval: 60 # Обновление каждые 60 секунд
Перезагрузите Home Assistant и проверьте лог на ошибки через
Настройки → Журналы.
⚠️ Внимание: MAC-адреса устройств Xiaomi Mijia BLE меняются при каждом включении (рандомизация для экономии энергии). Чтобы это обойти:
- Используйте
bind_keyиз приложения Mi Home (найдите его в логах при подключении). - Либо настройте
passive_ble_monitorна сканирование по идентификатору модели (например,model: "LYWSD03MMC").
Подключён ли BLE-адаптер к USB 2.0 (не 3.0) порту?|Отключены ли другие Bluetooth-устройства (наушники, клавиатуры)?|Установлен ли пакет `bluez` в системе (проверка: `sudo apt list --installed | grep bluez`)?|Включён ли режим "Discoverable" на устройствах Xiaomi (держите кнопку 5 сек до мигания)?-->
4. Создание карточек Lovelace UI для Xiaomi Mijia BLE
Интерфейс Lovelace UI позволяет визуализировать данные с датчиков в виде графиков, иконок или текстовых панелей. Вот 3 готовых примера кода для вставки в Настройки → Lovelace → Редактировать:
4.1 Карточка термогигрометра с историей
type: vertical-stack
cards:
- type: glance
entities:
- entity: sensor.lywsd03mmc_temperature
name: Температура
- entity: sensor.lywsd03mmc_humidity
name: Влажность
title: Спальня
- type: history-graph
entities:
- entity: sensor.lywsd03mmc_temperature
- entity: sensor.lywsd03mmc_humidity
hours_to_show: 24
refresh_interval: 300
4.2 Уведомление о движении с фотографией
type: picture-glance
image: 'https://ваш-ip-адрес:8123/local/camera/snapshot.jpg'
entities:
- entity: binary_sensor.rtcgq02lm_motion
name: Движение
icon: 'mdi:motion-sensor'
title: Прихожая
camera_view: live
4.3 Панель управления кнопкой Xiaomi
type: entities
entities:
- entity: sensor.wxkg01lm_action
name: Последнее действие
- entity: input_boolean.virtual_switch
name: Виртуальный выключатель
icon: 'mdi:light-switch'
show_header_toggle: false
🔧 Дополнительные настройки:
- 🎨 Для изменения иконок используйте библиотеку Material Design Icons (код иконки вставляйте в поле
icon). - 📊 Чтобы графики обновлялись чаще, уменьшите
refresh_intervalдо 60 секунд (но это увеличит нагрузку на систему). - 🔒 Для скрытия чувствительных данных (например, датчиков в детской) используйте
visibility: '[{"condition": "state", "entity": "input_boolean.hide_sensors", "state": "off"}]'.
Как экспортировать готовую карточку для резервного копирования?
1. Откройте режим редактирования карточки в Lovelace.
2. Нажмите на три точки в правом верхнем углу → "Просмотр YAML".
3. Скопируйте весь код и сохраните в текстовый файл с расширением `.yaml`.
4. Для восстановления: создайте новую карточку → "Показать код" → вставьте сохранённый YAML.
5. Решение типичных проблем с подключением
Даже при правильной настройке устройства Xiaomi Mijia BLE могут "теряться" или передавать данные с задержкой. Вот алгоритм диагностики:
| Проблема | Возможная причина | Решение |
|---|---|---|
| Устройство не обнаруживается | Рандомизация MAC-адреса | Используйте bind_key или model в конфигурации |
| Данные обновляются раз в 10+ минут | Стандартный интервал опроса | Установите periodic_update_interval: 60 |
Постоянные ошибки BLE scan failed |
Конфликт Bluetooth-устройств | Отключите другие гаджеты, использующие Bluetooth |
| Датчик показывает "- -" | Слабый сигнал или помехи | Переместите адаптер ближе к устройству |
⚠️ Внимание: Если после обновления Home Assistant до версии 2026.4+ перестали работать кастомные компоненты, выполните:
- Удалите папку
/config/custom_components/ble_monitor. - Переустановите интеграцию через HACS.
- Обновите конфигурацию согласно официальному чейнджлогу.
Для устройств LYWSD03MMC с прошивкой до 2022 года может потребоваться откат версии через Mi Home (регион China Mainland). Инструкция:
Как откатить прошивку на LYWSD03MMC?
1. В Mi Home переключите регион на "Китай".
2. Найдите устройство в списке и нажмите на три точки → "Обновить прошивку".
3. Выберите версию 2.0.6_0039 (стабильная для интеграции).
4. После отката сбросьте устройство (удерживайте кнопку 10 секунд до мигания).
6. Автоматизация на основе данных с датчиков
Собранные данные с Xiaomi Mijia BLE можно использовать для создания сценариев в Home Assistant. Примеры практических автоматических правил:
6.1 Умное проветривание по влажности
alias: "Проветривание при высокой влажности"
trigger:
- platform: numeric_state
entity_id: sensor.lywsd03mmc_humidity
above: 65
action:
- service: switch.turn_on
entity_id: switch.ventilation_fan
- delay: "00:30:00"
- service: switch.turn_off
entity_id: switch.ventilation_fan
6.2 Оповещение о движении в запретное время
alias: "Охрана: движение ночью"
trigger:
- platform: state
entity_id: binary_sensor.rtcgq02lm_motion
to: "on"
condition:
- condition: time
after: "23:00:00"
before: "06:00:00"
action:
- service: notify.telegram_bot
data:
message: "Обнаружено движение в прихожей! {{ now().strftime('%H:%M') }}"
6.3 Логирование температуры в Google Sheets
Для этого потребуется:
- Создать новый Google Sheet и опубликовать его как веб-приложение.
- Установить интеграцию
Google Sheetsчерез HACS. - Добавить автоматизацию:
alias: "Лог температуры в Google Sheets"
trigger:
- platform: time_pattern
minutes: "/30"
action:
- service: google_sheets.append_spreadsheet
data:
spreadsheet_id: "ваш-id-документа"
range: "Лист1!A:B"
values: >
{{ [now().strftime("%d.%m.%Y %H:%M"), states('sensor.lywsd03mmc_temperature')] }}
📌 Важно: Для уведомлений через Telegram предварительно настройте бота в configuration.yaml:
telegram_bot:
- platform: polling
api_key: "ваш-api-ключ"
allowed_chat_ids:
- ваш-chat-id
notify:
- name: telegram_bot
platform: telegram
chat_id: ваш-chat-id
7. Оптимизация энергопотребления и стабильности
Устройства Xiaomi Mijia BLE известны проблемой "засыпания" — они перестают отвечать на запросы для экономии батареи. Чтобы этого избежать:
- 🔋 Замените стандартные батарейки
CR2032на Panasonic CR2032 или Duracell DL2032 — они держат заряд на 30% дольше. - ⚡ В настройках
passive_ble_monitorустановитеactive_scan: true(увеличит потребление адаптера, но стабилизирует соединение). - 🔄 Раз в неделю принудительно "будите" устройства, отправляя команду
ble_writeчерез Node-RED или скрипт:
service: ble_monitor.write
data:
mac: "XX:XX:XX:XX:XX:XX"
service_uuid: "0000fee9-0000-1000-8000-00805f9b34fb"
characteristic_uuid: "0000ffd5-0000-1000-8000-00805f9b34fb"
value: [0xAA, 0x55]
📊 Сравнение времени работы от батареи:
| Устройство | Стандартная CR2032 | Panasonic CR2032 | С активным сканированием |
|---|---|---|---|
| LYWSD03MMC | ~6 месяцев | ~9 месяцев | ~4 месяца |
| RTCGQ02LM | ~12 месяцев | ~18 месяцев | ~8 месяцев |
| MCCGQ02HL | ~24 месяца | ~36 месяцев | ~18 месяцев |
⚠️ Внимание: Если устройство перестало отвечать даже после замены батареи, попробуйте сбросить его до заводских настроек:
- Извлеките батарейку на 1 минуту.
- Вставьте батарейку обратно и сразу нажмите кнопку сброса (обычно скрыта под крышкой).
- Удерживайте кнопку 10-15 секунд до мигания индикатора.
8. Альтернативные способы интеграции (если BLE не подходит)
Если ваши устройства Xiaomi Mijia не поддерживают BLE или вы столкнулись с неразрешимыми проблемами соединения, рассмотрите эти варианты:
- 🌐 Облачная интеграция через Mi Home:
- Установите компонент
xiaomi_miotв Home Assistant. - Получите токен доступа через Mi Account Token Extractor.
- Добавьте в
configuration.yaml:
xiaomi_miot:username: "ваш-email@xiaomi.com"
password: "ваш-пароль"
devices:
- id: 123456789 # ID устройства из Mi Home
token: "ваш-токен"
- Установите компонент
- 📡 Локальный мост Zigbee:
Для устройств Aqara (например, WSDCGQ11LM) используйте адаптер CC2531 или ConBee II с интеграцией
Zigbee2MQTT. - 🔌 ESPHome + BLE Proxy:
Прошивайте дешёвые модули ESP32 прошивкой ESPHome и используйте их как прокси-серверы для удалённых датчиков.
- Запустите
sudo bluetoothctl. - Введите
scan onи дождитесь появления вашего устройства. - MAC-адрес будет отображаться в формате
XX:XX:XX:XX:XX:XXрядом с названием модели. - Для привязки по
bind_keyнайдите его в логах Mi Home (ищите строки с"bindKey":). - 🔄 Калибровка: Поместите датчик рядом с эталонным термометром и добавьте поправку в Home Assistant через
template sensor: - 📶 Помехи: Металлические поверхности или микроволновые печи рядом с датчиком искажают сигнал. Переместите устройство.
- 🔋 Разряженная батарея: При напряжении ниже 2.8V датчики Xiaomi начинают "врать". Замените батарейку.
🔹 Сравнение методов интеграции:
| Метод | Плюсы | Минусы | Задержка обновления |
|---|---|---|---|
| Passive BLE Monitor | Локальное управление, нет облачной зависимости | Требует BLE-адаптер, ограниченный радиус | 30 сек – 5 мин |
| Xiaomi Miot (облако) | Работает с любыми устройствами Xiaomi | Зависимость от серверов Xiaomi, задержки | 5–15 мин |
| Zigbee2MQTT | Стабильное соединение, низкое энергопотребление | Требует хаб, не все Mijia поддерживают Zigbee | 1–10 сек |
Если вы выбираете облачную интеграцию, учитывайте, что с 2026 года Xiaomi ужесточила политику безопасности: теперь для получения токена требуется китайский аккаунт Mi (регистрация через +86 номер). Альтернатива — покупка токена на специализированных форумах (например, 4PDA).
FAQ: Частые вопросы по Xiaomi Mijia BLE в Lovelace UI
❓ Как узнать MAC-адрес устройства, если он рандомизируется?
Используйте утилиту bluetoothctl в терминале Linux:
💡 Совет: MAC-адреса устройств Xiaomi часто начинаются с 58:2D:34 или A4:C1:38.
❓ Почему датчик температуры показывает неверные значения?
Причины и решения:
sensor:
- platform: template
sensors:
adjusted_temperature:
value_template: "{{ (states('sensor.lywsd03mmc_temperature') | float + 1.2) | round(1) }}"
unit_of_measurement: "°C"
❓ Можно ли подключить Xiaomi Mijia BLE к Home Assistant без Raspberry Pi?
Да, вот варианты:
- 🖥️ Home Assistant Container на любом ПК/ноутбуке с Bluetooth-адаптером (Windows/Linux/macOS).
- 📱 Home Assistant на Android через приложение HASS.io (требуется root для полного доступа к Bluetooth).
- ☁️ Облачный Home Assistant (например, Nabu Casa), но BLE-интеграция будет работать только при локальном адаптере.
⚠️ Ограничение: На Windows могут потребоваться дополнительные драйверы для BLE-адаптеров (например, Zadig для CC2652P).
❓ Как экспортировать данные с датчиков в Excel?
Используйте интеграцию SQL или InfluxDB:
- Настройте базу данных в
configuration.yaml: - Установите аддон InfluxDB через Supervisor.
- Экспортируйте данные через Grafana или скрипт на Python:
recorder:
db_url: !secret db_url # Например, mysql://user:password@localhost/homeassistant
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql://user:password@localhost/homeassistant')
query = "SELECT state, last_changed FROM states WHERE entity_id = 'sensor.lywsd03mmc_temperature' AND last_changed > NOW() - INTERVAL 7 DAY"
df = pd.read_sql(query, engine)
df.to_excel('temperature_data.xlsx', index=False)
❓ Почему после обновления Home Assistant перестали работать BLE-датчики?
Частые причины:
- 🔧 Изменения в API: Обновите кастомные компоненты через HACS.
- 🔌 Конфликт портов: Проверьте, не занял ли другой процесс Bluetooth-адаптер (
sudo lsof /dev/ttyACM0). - 📋 Устаревшие настройки: Замените
ble_monitorнаpassive_ble_monitorвconfiguration.yaml.
🛠️ Диагностика