Qingping bluetooth gateway настройка
2. Xiaomi Smart Home Suite - элементы умного дома Xiaomi
О элементах умного дома Xiaomi. Что требуется для их корректной работы?
- Шлюзы:
- Шлюз ZigBee - Необходим для работы устройств с ZigBee.
- Шлюз BLE (Bluetooth Low Energy) - Необязателен т. к. у большинства смартфонов есть BLE модуль. У шлюза есть функция постоянной синхронизации с несколькими устройствами BLE. У смартфона такой фунции нет.
- Устройства WiFi - Работают через обычный WiFi роутер 2.4 Ггц.
- Устройства ZigBee - Не работают без шлюза ZigBee.
- Устройства Bluetooth - Работают только напрямую со смартфоном. Для них не подходит шлюз BLE.
- Устройства BLE - Работают и со смартфоном (если у вашего смартфона есть BLE модуль) и со шлюзом.
- Модель: KTBL02LM
- Размеры продукта 73 x 73 x 35 мм
- Характеристики питания: 4000W 16A MAX, 250V
- Модель: KTBL01LM
- Стандарты Q / QLML010-2016
- Размеры 65 * 65 * 35 мм
- Технические характеристики: 3500 Вт 16 А 250 В
- Рабочая температура: -10'C
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель: ?
- Тип беспроводной сети: ZigBee
- Потребление: 0.15 А - 35 W
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель: ?
- Тип беспроводной сети: ZigBee
- Модель:
- Измеряемые показатели:
- Наличие движения
- Модель:
- Время срабатывания: 15ms
- Тип беспроводной сети: ZigBee
- Модель:
- Время срабатывания: 15ms
- Тип беспроводной сети: ZigBee
- Модель:
- Материал корпуса: ABS-пластик
- Срок эксплуатации: 2 года без замены аккумулятора
- Подключение: Bluetooth 4.1
- Вес: 73 грамма
- Размеры устройства: (ДхШхГ): 45 x 45 x 45 мм
- Модель: ?
- Тип беспроводной сети: ZigBee
- Измеряемые показатели:
- Влажность
- Температура
- Модель: GMR4001CN
- Подключение: Wi-Fi
- Вес: 100 грамм
- Размеры устройства: (ДхШхГ): 63 x 55 x 35 мм
- Модель: RTCGQ11LM
- Измеряемые показатели:
- Уровень освещенности
- Наличие движения
- Модель: WSDCGQ11LM
- Беспроводное подключение: ZigBee
- Технические характеристики батареи: CR2032
- Стандарт: Q / QLML006-2016
- Измеряемые показатели:
- Влажность
- Температура
- Давление
В этом обзоре, мы с вами рассмотрим устройство с набирающим популярность интерфейсом Bluetooth BLE 5.0 — датчик движения с сенсором света Qingping, предназначенный для экосистемы mihome. Название Qingping — хорошо известно энтузиастам умного дома Xiaomi, в первую очередь по мониторам качества воздуха, хотя ими модельная линейка не ограничивается. Герой этого обзора сочетает в себе две функции — это обнаружение движения и измерение уровня освещения в люксах. Давайте разбираться.
Содержание
Куплен на Aliexpress — цена на момент публикации $ 11.69
Параметры
- Модель — Qingping CGPR1
- Интерфейс — Bluetooth BLE 5.0
- Тип — датчик движения и уровня освещенности
- Расстояние обнаружения: 7 м
- Угол обнаружения: 15 °(7 м)
Поставка
Устройство поставляется в белой коробке с изображением и названием датчика. Сверху указан логотип экосистемы xiaomi mijia. Коробка запаяна в пластик, что дает уверенность в том, что с завода ее никто не открывал.
Надписи сзади выполнены на английском и китайском языках. Тут указан номер модели и интерфейс, остальных параметров тут перечислять не стали.
Упаковка хорошая, датчик удерживается в центре коробки, что дает дополнительную защиту при пересылке. Доехало все в целости и сохранности, никаких проблем не возникло.
Вот все что нашлось в коробке. Датчик с подставкой, про них подробнее расскажу дальше. Инструкция на китайском и английском языках. Наклейка двустороннего скотча для установки без подставки.
Конструкция
Перейдем к датчику. Он имеет бочкообразную форму, боковая сторона не гладкая, а состоит из множества граней. Передняя сторона — рабочая, задняя — служит для крепления датчика.
Датчик и подставка не имеют жесткой механической связки, и могут быть разъединены. Крепление — магнитное, его более чем достаточно для удерживания и фиксации датчика на одном месте.
На задней стороне подставки уже находится двусторонний скотч, чтобы ее можно было закрепить на поверхности. Но при этом, датчик можно установить и отдельно, для чего в комплекте есть еще одна наклейка. Правда в таком случае его нельзя будет регулировать.
Задняя крышка — съемная, для этого ее надо повернуть в направлении указанном на ней сверху. Это немного неудобно, но не сложно. На ее внутренней стороне — находится магнит.
Для того чтобы батарейки не разрядились при пересылке — тут установлен бумажный предохранитель, который нужно вынуть.
Батарейки, а тут используются два литиевых элемента CR2450 упакованных в одну кассету, тоже можно достать повернув ее вокруг своей оси. Синий пластиковый рычажок — связан с кнопкой сопряжения. Для перевода в этот режим — кнопку нужно нажать и удерживать около трех секунд, до моргания синего светодиода.
Кстати за счет магнита на крышке — датчик можно устанавливать на металлические поверхности, например холодильник, без скотча и подставок.
Mihome
После снятия предохранителя с батареек, устройство становится видимым. После запуска режима подключения новых устройств в mihome — датчик виден в списке новых. Выбираем его, и далее следуем подсказкам мастера подключения — для подтверждения подключения нужно нажать кнопку сопряжения до мерцания светодиода.
Ждем пока пройдет обмен данными и в завершении подключения нужно пройти три финальных шага — указать локацию для устройства, выбрать имя и при необходимости предоставить доступ на другие аккаунты.
После этого — датчик появится в списке устройств системы. Датчик позволяет к себе подключаться как напрямую — если телефон в непосредственной близости, так и через bluetooth шлюзы. В первом случае на экране плагина, сверху — под названием устройства есть небольшой значок bluetooth.
Сам экран разделен нf две части — в верхней находятся показания освещенности, в нижней — лог датчика движения.
Исторические данные доступны только если датчик подключен к какому-то из Bluetooth шлюзов системы. Как то специально подключать не нужно — он подхватится автоматически.
Нажав справа вверху кнопку с изображением трех точек — попадаем в меню настроек. Самая интересная и полезная опция тут — это интервал между событиями обнаружения движения. От 5 секунд до одной минуты. От момента последнего движения до перехода датчика в режим выключено — проходит 90 секунд.
Что касается Bluetooth шлюзов — то датчик работает со всеми и одновременно — и mesh как в шлюзе xiaomi третьей версии, так и обычными как в люстрах, розетках, климатической технике и прочее. Так что с доступностью проблем нет.
Автоматизации
Устройство может работать только в как условие автоматизации (разумеется только при наличии bluetooth шлюза) и предлагает к использованию целый ряд событий — обнаружение движения, отсутствие движение в течении указанного времени от минуты до получаса, движение при уровне освещения выше или ниже заданного, и условия просто по уровню освещения.
Home Assistant
В Home Assistant устройство добавляется благодаря интеграции Xiaomi Gateway 3 от AlexxIT, подробнее смотрите в моих уроках по Home Assistant -
На данный момент у меня в интеграции два шлюза, но датчики не дублируются — обновления приходят с обоих шлюзов на одни и те же объекты.
Устройство имеет 5 объектов: уровень заряда, из коробки он оказался всего 20%, в режиме детализации работы есть сенсор последнего отзыва от устройства, сенсор показывающий время простоя, и два основных объекта — это датчик движения и освещенности.
В этой интеграции устройство работает параллельно с mihome — установленные настройки действуют и там и там. Напомню, что время от последней регистрации движения, частота которой настраивается от 5 до 60 секунд, до статуса нет движения — составляет 90 секунд.
Если сенсор не регистрирует никаких движений — то начинает меняться значение времени простоя в секундах. Оно показывается округленно — минута, пять, десять и так далее. В принципе его тоже можно как-то использовать в автоматизациях.
Надо сказать что данные сенсор обновляет чаще, чем передает на шлюз, вот пример — где в один момент времени, шлюз отдает показания в 0 люкс, а при прямом подключении — 92 люкса. Какой-то прямой зависимости я не нашел, обычно и на шлюзе все оперативно, но бывает и так.
Я пытался сравнить его показания с zigbee датчиком освещения Xiaomi. Реакция на изменение условий освещения — у них совпадает, но «люксы» у каждого свои. Однако это не мешает создавать сценарии в зависимости от степени освещения.
Видео версия обзора
Вывод
В целом устройство получилось довольно интересным — так как по сути это два в одном, датчик движения, причем с возможностью настройки интервала реагирования без перепайки, и сенсор освещения, с гораздо более широкими пределами измерений чем у его zigbee аналога у Aqara.
Из замеченных мною минусов — это более низкая скорость передачи показаний на шлюзы, чем по факту регистрирует датчик. Но обычно это все исправляется в новых версиях прошивок.
В системе умного дома Xiaomi используются 3 протокола беспроводной связи Wi-Fi, ZigBee и Bluetooth. И если с принципом работы первого знакомы все, второй разобран в отдельной статье, то по блютус протоколу могут возникнуть вопросы. Например, из-за его небольшого радиуса действия устройства с Bluetooth видятся только в непосредственной близости со смартфоном.
Чтобы решить эту проблему, в 2017 году было введено понятие Bluetooth-шлюз.
Принцип работы аналогичен ZigBee шлюзам, датчик с модулем Bluetooth подключается к одному из устройств, которое имеет одновременно 2 беспроводных интерфейса, по блютусу держит связь с датчиком, а по Wi-Fi обменивается данными с облаком. Схематично это выглядит так:
Такая схема работы позволяет обеспечить длительную работу умных устройств от батарейки и, в отличии от устройств с ZigBee протоколом, возможность подключения к устройству напрямую.
Устройства с протоколом Bluetooth можно разделить на 2 категории: подключаемые устройства и Bluetooth шлюзы. Посмотреть полный список устройств, которые могут выполнять роль шлюза, можно в приложении Mi Home, во вкладке "Profile" > "BLE Gateway".
Если у вас уже есть устройства, которые могут выполнять роль шлюза, они отобразятся в списке. А если зайти в Bluetooth шлюз, то отобразится список устройств которые можно к нему подключить. В приложении присутствует небольшая инструкция:
А вот если подходящих устройств нету, то приложение предложит их купить:
На данный момент (январь 2020 года), 10 устройств поддерживают функцию шлюза:
1. Камера видеонаблюдения Mijia Smart Home Camera
Одно из первых устройство с функцией Bluetooth шлюза. Вполне неплохая камера с FullHD разрешением и углом обзора в 130 градусов. Сейчас уже снята с продажи и найти её затруднительно , но если вдруг вам попадется, её код продукта S XJ01ZM .
В этом посте я расскажу как можно собирать данные BLE и передавать через MQTT в системы умного дома, например в HomeAssistant.
Как все начиналось?
Эта история началась в прошлом году: у меня появился несколько таких шлюзов. В то время было несколько статей по получению root доступа, интеграции miio в HA и по прошивке чистого openwrt на шлюз. Толчком к развитию стал сезон распродаж в разных магазинах, где стоимость шлюза стремилась к нулю , и многие энтузиасты получили интересную железку.
Первым большим делом для меня было заставить работать zigbee2mqtt с чипом и прошивкой находящимся в шлюзе. И пока я допиливал интеграцию в zigbee-herdsman, ребята в чатике @xiaomi_gw_hack занимались добавлением поддержки в openwrt периферии, которая была в шлюзе (светодиоды RGB, динамик, датчик света, wi-fi модуль).
Было обнаружено, что в wifi модуле rtl8723bs европейской версии шлюза есть встроенный bluetooth с поддержкой BLE.
Но в стоковой системе на шлюзе нет никаких следов bluetooth. И лишних uart, по которому можно было бы с ним работать — тоже. @lenz1986 провел раскопки
Несколько плат очень помогли разобраться в внутреннем мире шлюза Вот как плата выглядит без процессора )
Он вызвонил контакты, и обнаружил что на плате разведены все 4 UART от процессора. Один из которых вел на uart от bluetooth части модуля wifi rtl8723bs. Потом он добавил поддержку этого uart в DTB , где описываются вся периферия устройства для openwrt и нашел подходящие драйвера. За что @lenz1986 огромное спасибо!
Bluetooth инициализируется через rtk_hciattach при запуске шлюза. После загрузки мы получаем такую картину hciconfig
Я знаю 2 пути, как можно включить bluetooth адаптер.
Руками hciconfig hci0 up
изменив параметр AutoEnable конфиге /etc/bluetooth/main.conf на true
Я выбираю второй. Интерфейс запущен. Для проверки можно запустить скан hcitool lescan
Работа с BLE
Мои знания по BLE были на нуле, и чтобы было проще разобраться я искал что-то готовое по типу zigbee2mqtt. Перепробовал несколько решений на Node.Js, в том числе пакеты для node-red. Остановился на проекте EspruinoHub. (хоть и код там не супер современен и технологичен, но зато работает)
После запуска с отсылкой данных в локальный mqtt сервер, в CLI и web интерфейсе уже показались распарсенные данные с части датчиков LYWSDCGQ (круглые гигротермографы) .
Раньше я их слушал на esp32 через esphome. Небольшое сравнение получаемых данных с одного термометра.
Это меня порадовало, но у меня было еще несколько устройств, данные от которых я увидел почти в raw виде. И я решил использовать эту программу и немного улучшить ее.
пример cli интерфейса с статусом доступных устройств
Многие устройства Xiaomi с bluetooth шлет BLE Advertising Packet, в большинстве случаев в нем содержится полезная нагрузка в виде измерений, которые производит устройство. Часто данные отправляются открыто, но используется шифрование с ключом.
Например для браслета MiBand данные выглядят вот так. Если есть данные о пульсе то они добавляются в конец
В устройствах xiaomi, часто используется BLE сервис fe95. В интернете есть небольшая документация по нему .На github есть множество проектов которые умеют парсить эти данные. На основе этих данных и существующей реализации espruino я немного улучшил парсинг открытых данных, но потом я нашел более красивое решение из hannseman/homebridge-mi-hygrothermograph. Мне особенно понравилась стандартизация разных событий и расшифровка исходя из данных заголовка.
Этот парсер закрыл вопрос с большинством устройств Xiaomi, отправляющих данные в fe95. Можно еще попробовать добавить некоторые типы событий (движение, дым, нажатие на кнопку), но у меня нет таких устройств под рукой.
Я добавил в EspruinoHub данный парсер, и реализовал возможность указать настройки для разных устройств. Это необходимо для устройств, которые шифруют с помощью bindKey свои пакеты. Получить bindKey можно из miHome.
MQTT Discovery - Home Assistant
Данных стало больше, но хотелось чтобы они автоматически появлялись в HomeAssistant. EspruinoHub отправляет данные которые и слышит в эфире, и не имеет на данный момент привязки к конкретным устройствам. Поэтому в момент появления данных, если они из списка поддерживаемых отправляется config устройства в топик homeassistant в mqtt и устройства появляются в системе умного дома
Добавленные и протестированные устройства.
LYWSDCGQ - работал "из коробки". Добавил только mqtt discovery в HA
показания пере
LYWSD02 - температура, влажность и батарейка
Самый бюджетный датчик температуры и влажности с экраном LYWSD03MMC - температура, влажность и батарейка (нужен bindKey). Существует 2 альтернативные прошивки, они очень крутые и продвинутые. Особенно от Виктора pvvx. Рекомендую использовать именно ее. Помимо лучшего потребления она шлет данные в одном пакете, а не в трёх и имеет множество настроек.
MI SCALE - 181d v1 По крупицам из разных источников допилена реализация в которой показываются данные о - стабилизации веса (весы моргают) - убрали вес (встали с весов) - дата и время измерения. 181b v2 Работает, но не тестировал лично. Возможно нужно что-то допилить
Mi band 3 fee0 Шаги и Пульс в режиме тренировки. Чтобы браслет отправлял данные необходимо включить обнаружение в MiFit.
Как оказалось шлюз очень хорошо и далеко слышит, а эта функция включена у многих людей. Работает это и для других моделей и даже на некоторых часах например Amazfit GTS
HHCCJCY01 MiFlora, Huahuacaocao - temperature, moisture, illuminance, conductivity, battery_level
Другие устройства тоже можно попробовать подключить. Если они шлют в кодированном виде, то в mqtt об этом будет ошибка с просьбой указать bindKey в конфиг.
Как установить EspruinoHub на шлюз Xiaomi с OpenWrt ?
Можно установить и на другие устройства с помощью git / npm, инструкция на странице проекта EspruinoHub
Установка
Мои последние наработки собраны в пакет и ставятся с помощью opkg
Дальше установить собранный пакет.
Конфигурирование
По-умолчанию он будет пытаться подключиться к локальному mqtt без авторизации. Если вы хотите подключить к внешнему брокеру mqtt, то нужно изменить конфиг в /etc/espruinohub/config.json
Внимание! у некоторых настроек в начале стоят слеши чтобы они не применялись. (конфиг в этом проекте частично сделан как пример и я не стал ничего менять)
Пример конфига можно посмотреть тут. Если вы знаете мак адреса своих устройств то рекомендую их прописать и установить "only_known_devices": true , чтобы не отправлялись данные с чужих устройств из эфира.
Для работы с HomeAssistant достаточно отправлять данные в json формате, а остальное можно выключить. По умолчанию будет отправлять в топики с группировкой по типу данных.
Планы
Отслеживание носимых устройств по rssi между комнатами. Для этого в конфиг я добавил возможность указать минимальный rssi в разрезе устройства и таймаут присутствия.
данные с устройств летят достаточно часто если они в зоне прямой видимости.
Активные подключения: хочу попробовать управлять некоторыми устройствами по BLE, но для одновременного подключения и сканирования Bluetooth модуль и ПО могут работать нестабильно. Поэтому я пока только изучаю этот вопрос.
Альтернативные opensource проекты работающие с BLE на шлюзе
devbis/ble2mqtt - своя реализация на python через bleak, умеет подключаться к чайникам, но сильно грузит процессор.
Beetle-II/lumi - тот же парсер из hannseman/homebridge-mi-hygrothermograph, но без возможности задать индивидуальный ключ bindKey для устройства. Нет raw данных и управление через mqtt. + Умеет работать не только с BLE.
С каждым годом экосистема умного дома Mijia Mi Home все больше пополняется устройствами, которые подключаются по Bluetooth протоколу. Для использования таких устройств нужно наличие специального шлюза.
В некоторых новых шлюзах уже есть подобная опция. Но для этого нужно обновлять (заменять) существующие в доме шлюзы, что вызывает дополнительные затраты времени и денег. Для решения этих проблем, конце прошлого года компания Qingping представила Cleargrass Bluetooth Gateway CGSPR1
Что в коробке
Комплектация минималистичная -- только сам шлюз и инструкция на китайском.
Внешний вид и характеристики реле
Устройство имеет небольшие габариты и выполнено в форме прямоугольника, что больше напоминает адаптер зарядки для телефона.
Пластик белый, матовый с ребристой фактурой. Для подключения понадобится универсальный переходник, так как вилка китайская. В верхней части шлюза имеется светодиодный индикатор состояния и кнопка сброса.
Характеристики продублированы на упаковке и каких то особенностей не имеют
Модули связи - Wi-Fi IEEE 802.11 b/g/n 2.4 GHz, Bluetooth 4.2
Габариты (корпус) - 62.16 мм x 42 мм x 31.5 мм
Хоть устройство собрано на защелках, без видимых повреждений разобрать не получится. Но для представления внутреннего мира гаджета, производитель сделал рендер:
Подключение к MiHome
Подключение устройства в экосистему Mi Home довольно простое и не отличается от интеграции других гаджетов. Вставляем устройство в розетку, запускаем приложение и нажимаем кнопку + в приложении, шлюз находится автоматически. Если при подключении возникли проблемы - устройство находим в закладке "Шлюз", а для сброса необходимо нажать кнопку на корпусе устройства (пока не начнет мигать оранжевый индикатор). Нажимаем Далее и выполняем указания Мастера Подключения.
Если вдруг не находите устройство в списке - проверяем в настройках приложения регион, должен быть установлен Китай. Если в процессе подключения выходит ошибка - проверяем настройки Wi-Fi, он должен работать по сети 2.4 GHz, а в названии и пароле не должно быть спец символов.
После удачного подключения, можем заходить в плагин устройства.
Каких нибудь особых настроек в плагине нет. Подключать Bluetooth-устройства тоже не нужно, они сами подтянутся шлюзом через некоторое время (обычно от 5 до 15 минут). Все найденные устройства можно посмотреть в закладке Connected to Bluetooth device. Если каких то устройств нету, значит они находятся не в зоне досягаемости шлюза или не поддерживаются (относится к Bluetooth mesh).
Заключение
Гаджет уже давно требовался многими пользователям, и даже после появления новых Multi-Mode Gateway (который совмещает в себе функцию шлюза как для ZigBee, так и для Bluetooth) от Xiaomi и Aqara, все равно пригодится как бюджетное решение для расширения покрытия Bluetooth сети.
К минусам можно отнести скудный функционал и отсутствие поддержки Bluetooth mesh, которая последнее время все больше набирает популярности.
в продаже уже доступна и глобальная версия Qingping Bluetooth Gateway CGSPR1. Отличается от китайской евровилкой, то есть переходники покупать не нужно. Также данная версия без проблем подключается к глобальным серверам.
Читайте также:
- Влажность
- Уровень освещенности
- Влажность
- Шлюз ZigBee - Необходим для работы устройств с ZigBee.