В этом посте я расскажу как можно собирать данные BLE и передавать через MQTT в системы умного дома, например в HomeAssistant.
Как все начиналось?
Эта история началась в прошлом году: у меня появился несколько таких шлюзов. В то время было несколько статей по получению root доступа, интеграции miio в HA и по прошивке чистого openwrt на шлюз. Толчком к развитию стал сезон распродаж в разных магазинах, где стоимость шлюза стремилась к нулю , и многие энтузиасты получили интересную железку.
Было обнаружено, что в wifi модуле rtl8723bs европейской версии шлюза есть встроенный bluetooth с поддержкой BLE.
Несколько плат очень помогли разобраться в внутреннем мире шлюзаВот как плата выглядит без процессора )
Bluetooth инициализируется через rtk_hciattach при запуске шлюза. После загрузки мы получаем такую картину hciconfig
Я знаю 2 пути, как можно включить bluetooth адаптер.
- Руками hciconfig hci0 up
- изменив параметр AutoEnable конфиге /etc/bluetooth/main.conf на true
Я выбираю второй. Интерфейс запущен. Для проверки можно запустить скан hcitool lescan
Новинка от Yeelight: шлюз BLE и Bluetooth mesh! Сравнение со шлюзом 3 версии Xiaomi.
Работа с 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. Можно еще попробовать добавить некоторые типы событий (движение, дым, нажатие на кнопку), но у меня нет таких устройств под рукой.
Три поколения шлюзов Xiaomi — их отличия и особенности
Я добавил в EspruinoHub данный парсер, и реализовал возможность указать настройки для разных устройств. Это необходимо для устройств, которые шифруют с помощью bindKey свои пакеты. Получить bindKey можно из miHome.
MQTT Discovery — Home Assistant
Данных стало больше, но хотелось чтобы они автоматически появлялись в HomeAssistant. EspruinoHub отправляет данные которые и слышит в эфире, и не имеет на данный момент привязки к конкретным устройствам. Поэтому в момент появления данных, если они из списка поддерживаемых отправляется config устройства в топик homeassistant в mqtt и устройства появляются в системе умного дома
Добавленные и протестированные устройства.
В результате изучения разных решений и raw сообщений от устройств удалось добавить или улучшить интеграцию следующих устройств в пассивном режиме (только слушаем эфир не подключаемся к устройствам и не тратим батарейку).
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 в конфиг.
YEERC — я обнаружил что прошивка для esp32 tasmota сообщает, что поддерживает данный пульт. Он идет в комплекте с многими люстрами YEELIGHT, но к сожалению у меня не получилось нигде найти как получить 32 символьный bindKey для него. Сообщения нажатий я вижу, но не могу расшифровать. (Значение event закодировано и зависит от counter который увеличивается с каждым нажатием) Возможно кто-то из читателей подскажет как добыть данный ключик. Пульт можно привязать к нескольким люстрам в разное время и они будут вместе расшифровывать и отрабатывать нажатия. Скорей всего ключ там не изменяется со временем или привязкой.
Как установить EspruinoHub на шлюз Xiaomi с OpenWrt ?
Можно установить и на другие устройства с помощью git / npm, инструкция на странице проекта EspruinoHub
Установка
Мои последние наработки собраны в пакет и ставятся с помощью opkg
Дальше установить собранный пакет.
opkg updateopkg install node-espruinohub
Конфигурирование
По-умолчанию он будет пытаться подключиться к локальному mqtt без авторизации. Если вы хотите подключить к внешнему брокеру mqtt, то нужно изменить конфиг в /etc/espurinohub/config.json
Внимание! у некоторых настроек в начале стоят слеши чтобы они не применялись. (конфиг в этом проекте частично сделан как пример и я не стал ничего менять)
Пример конфига можно посмотреть тут. Если вы знаете мак адреса своих устройств то рекомендую их прописать и установить «only_known_devices»: true , чтобы не отправлялись данные с чужих устройств из эфира.
Для работы с HomeAssistant достаточно отправлять данные в json формате, а остальное можно выключить. По умолчанию будет отправлять в топики с группировкой по типу данных.
«mqtt_format_json»: true,»homeassistant»: true,»mqtt_cache_state»: true
Планы
Отслеживание носимых устройств по rssi между комнатами. Для этого в конфиг я добавил возможность указать минимальный rssi в разрезе устройства и таймаут присутствия.
данные с устройств летят достаточно часто если они в зоне прямой видимости.
Активные подключения: хочу попробовать управлять некоторыми устройствами по BLE, но для одновременного подключения и сканирования Bluetooth модуль и ПО могут работать нестабильно. Поэтому я пока только изучаю этот вопрос.
Альтернативные opensource проекты работающие с BLE на шлюзе
- devbis/ble2mqtt — своя реализация на python через bleak, умеет подключаться к чайникам, но сильно грузит процессор.
- Beetle-II/lumi — тот же парсер из hannseman/homebridge-mi-hygrothermograph, но без возможности задать индивидуальный ключ bindKey для устройства. Нет raw данных и управление через mqtt. + Умеет работать не только с BLE.
Спасибо, что дочитали до конца!
Если у Вас есть вопросы, то можете задавать их в комментариях.
Источник: personeltest.ru
Что такое BLE шлюз (gateway)? Использование оборудования для решений Navigine
BLE шлюз находит широкое применение в системах навигации и позиционирования внутри помещений. Он представляет собой устройство, которое поддерживает связь между интеллектуальным оборудованием (датчиками, маяками, выключателями и др.) и продуктами на основе беспроводной технологии Bluetooth. В процессе эксплуатации датчики находят все доступные шлюзы в своем окружении и рассылают сигналы с заданной информацией, а последние принимают эти импульсы и направляют их на облачный сервер. Такое решение обеспечивает эффективное управление устройствами BLE и позволяет контролировать местоположение объектов в режиме реального времени.
Особенности BLE шлюза
- Оборудование устойчиво к атмосферным воздействиям и может использоваться даже в суровых погодных условиях.
- Стоимость внедрения BLE-шлюзов в инфраструктуру предприятия достаточно невысокая, что делает оборудование более рентабельным в сравнении с некоторыми другими решениями Интернета вещей.
- Устройства отличаются ремонтопригодностью. В случае выхода из строя отдельных деталей их можно легко и недорого заменить.
- Шлюз способен поддерживать различные протоколы, в том числе HTTPS / HTTP, MQTT.
- Устройства могут передавать данные, используя GSM, WiFi или Ethernet.
- Оборудование обеспечивает связь в двух направлениях, то есть может и посылать, и принимать данные.
- К числу функций шлюза относят обеспечение безопасности данных. Так, он может выполнять блокировку и требовать от пользователей разблокировки посредством пароля для подключения к Bluetooth.
- В процессе работы шлюз выполняет адаптивное переключение частоты согласно условиям окружающей среды. Иными словами, устройство снижает шумы и помехи и позволяет датчикам или биконам эффективно работать даже в шумной обстановке.
Сценарии использования оборудования для решений Navigine
Компания Navigine активно использует Bluetooth шлюз с низким энергопотреблением для реализации своих решений. Его применение может проходить по нескольким сценариям – отслеживание активов, мониторинг персонала, Bluetooth-маркетинг, indoor-навигация.
Отслеживание активов в промышленности и складах
Посредством шлюзов можно точно определять местоположение активов на складах и промышленных предприятиях. Постоянный мониторинг предоставляет детальную информацию о перемещении техники, ее состоянии, времени работы в течение дня. Если установить маячки на погрузчики и другое оборудование, они будут передавать шлюзам данные о расположении оборудования в режиме реального времени, а также предупреждать о выходе за пределы предприятия или вероятном столкновении. Использование устройств позволяет более четко планировать задачи по применению активов, снижать время простоя техники, оптимизировать логистические процессы.
Мониторинг перемещения сотрудников
Управление и контроль над персоналом – непростая задача, которую можно эффективно решать при помощи маячков и шлюзов. Чтобы выполнять постоянный мониторинг перемещений сотрудников, достаточно предоставить каждому из них специальную бирку, в которую встроен Bluetooth-маячок. Биконы будут постоянно рассылать информацию о местоположении человека, а шлюз – принимать эти данные и отправлять для обработки на сервер. Благодаря такому подходу можно:
- улучшить координационные процессы;
- сократить время на выполнение сотрудниками конкретной работы;
- свести к минимуму количество внештатных ситуаций;
- корректировать повседневные задания в реальном времени;
- быстрее принимать решения в случае возникновения ЧП.
Navigine Tracking
Платформа, учитывающая местоположение, для цифровой трансформации предприятий.
Bluetooth-маркетинг
Использование шлюзов позволяет улучшить качество обслуживания клиентов и получить дополнительные маркетинговые каналы для расширения клиентской базы. Если установить маяки iBeacon и BLE-шлюзы по всей территории магазина, то каждый раз, когда посетитель входит в зону действия устройств, ему на телефон будут приходить уведомления с рекламой, информацией о скидках, акциях или бонусных предложениях. При помощи технологии можно продвигать бренд или отдельную продукцию, собирать обратную связь, предоставлять интерактивные подсказки с данными о конкретном товаре. Всё это в совокупности повышает эффективность маркетинговой кампании и делает клиентов более лояльными к торговой точке.
Навигация внутри помещений
Технологии можно использовать как в магазинах, так и в больницах, музеях, аэропортах, на железнодорожных вокзалах. Системы помогают строить интерактивные карты зданий, прокладывать маршруты к местам интереса, находить необходимые товары и другие объекты. Индор-навигация с помощью приложения на смартфоне значительно улучшает пользовательский опыт и позволяет оптимизировать перемещения посетителей.
Есть вопросы по статье?
Примеры BLE gateway от технологических партнеров Navigine
Компания Navigine тесно сотрудничает с ведущими производителями оборудования для определения местоположения объектов. При внедрении платформ для трекинга и навигации мы используем BLE gateway от своих технологических партнеров, которые предлагают надежное оборудование с высоким уровнем безопасности и скорости передачи данных. Так, в организации систем позиционирования могут применяться следующие шлюзы:
- G1 IoT Gateway от Minew – мощный считыватель с поддержкой Wi-Fi и корпоративным шифрованием WPA 2.0. Дальность передачи данных устройства составляет 300 метров, скорость передачи данных Wi-Fi – до 300 Мбит/с. Поддерживает облачные платформы AWS, Azure, Google IoT и сохраняет информацию на TF-карте даже при отключенной сети.
- Gateways от Kontakt.io – доступный шлюз с транзитной сетью Wi-Fi, позволяющей более точно определять расположение объектов. Работает по принципу Plug https://nvgn.ru/blog/chto-takoe-ble-gateway/» target=»_blank»]nvgn.ru[/mask_link]
Moes B097XR41X4 Bluetooth Gateway Smart WiFi Hub Инструкция по эксплуатации
Наслаждайтесь нашей умной жизнью
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Многорежимный шлюз
Zigbee, BLE и сеткаСделано в Китае
РАБОТАЕТ С Google Ассистент
РАБОТАЕТ С лексой
Содержание скрывать
Технические характеристики продукта
Список необходимых вещей
- Многорежимный шлюз
- Инструкция по эксплуатации х 1
- Кабель питания х 1
Описание товара:
Интеллектуальный шлюз — это центр управления устройством ZigBee. Пользователи могут разрабатывать и реализовывать интеллектуальные сценарии приложений, добавляя устройства ZigBee.
Подготовка к использованию
- Мобильный телефон подключен к сети Wi-Fi 2.4 ГГц.
Убедитесь, что смартфон находится в той же сети Wi-Fi, что и Smart Gateway, чтобы обеспечить эффективное соединение между смартфоном и Smart Gateway. - Скачайте и откройте приложение
В App Store найдите соответствующее приложение или отсканируйте QR-код на упаковке/руководстве для загрузки. Если вы загружаете приложение в первый раз, нажмите «Зарегистрироваться», чтобы зарегистрировать свою учетную запись. Если у вас уже есть учетная запись, нажмите кнопку «Войти».
http://smartapp.tuya.com/smartlife
Добавить устройства
- Подключить питание к шлюзу. Убедитесь, что светодиодный индикатор (красный) мигает. (если индикатор находится в другом состоянии, нажмите кнопку сброса, пока красный индикатор не начнет мигать);
- Убедитесь, что переключатель Bluetooth мобильного телефона включен, а мобильный телефон подключен к Wi-Fi 2.4 ГГц домашнего маршрутизатора, в этот момент мобильный телефон и шлюз находятся в одной локальной сети;
- Откройте приложение, шлюз автоматически найдется, затем нажмите «Добавить». Если шлюз не найден, нажмите кнопку «+» в правом верхнем углу экрана, выберите «Управление шлюзом» в левой строке меню на экране и выберите «Многорежимный шлюз», нажимайте функциональную кнопку, пока светодиодный индикатор не начнет мигать, действуйте в соответствии с указаниями приложения;
Добавить устройство
- После успешного добавления устройства вы сможете найти его на странице «Моя домашняя страница».
Электронные информационные продукты Декларация о токсичных и опасных веществах
Услуги
- В течение бесплатного гарантийного периода, если продукт выйдет из строя при нормальном использовании, мы предложим бесплатное техническое обслуживание продукта.
- Стихийные бедствия/техногенные поломки оборудования, разборка и ремонт без разрешения нашей компании, отсутствие гарантийного талона, продукты, выходящие за рамки бесплатного гарантийного периода и т. д., не подпадают под действие бесплатной гарантии.
- Любое обязательство (устное или письменное), сделанное третьей стороной (включая дилера/поставщика услуг) перед пользователем за рамками гарантии, должно быть выполнено третьей стороной.
вечеринка - Пожалуйста, сохраните этот гарантийный талон, чтобы обеспечить свои права
- Наша компания может обновлять или изменять продукты без предварительного уведомления. Пожалуйста, обратитесь к официальному webсайт.
ИНФОРМАЦИЯ ОБ УТИЛИЗАЦИИ
Все изделия, отмеченные символом раздельного сбора отходов электрического и электронного оборудования (Директива WEEE 2012/19/EU), должны утилизироваться отдельно от несортированных бытовых отходов. Для защиты вашего здоровья и окружающей среды это оборудование необходимо утилизировать в специальных пунктах сбора электрического и электронного оборудования, назначенных государственными или местными властями. Правильная утилизация и переработка помогут предотвратить возможные негативные последствия для окружающей среды и здоровья человека. Чтобы узнать, где находятся эти пункты сбора и как они работают, обратитесь к установщику или в местные органы власти.
ГАРАНТИЙНЫЙ ТАЛОН
информация о продукте
Наименование товара__________________________________________
Тип продукта___________________________________________
Наименование товара__________________________________________
Дата покупки__________________________________________
Гарантийный срок________________________________________
Информация о дилере______________________________________
Имя заказчика____________________________________________
Телефон клиента_____________________________________________
Адрес клиента______________________________________
Записи о техническом обслуживанииСпасибо за вашу поддержку и покупку в we Moes, мы всегда здесь для вашего полного удовлетворения, просто не стесняйтесь поделиться с нами своим замечательным опытом покупок.
Если у вас есть какие-либо другие потребности, пожалуйста, не стесняйтесь обращаться к нам в первую очередь, мы постараемся удовлетворить ваши требования.Документы / Ресурсы
Похожие сообщения
Руководство Instant Pot Smart WiFi — Оптимизированный PDF Руководство Instant Pot Smart WiFi — Оригинальный PDF для просмотра…
Руководство пользователя приложения для Smart Lock V1 .0 http://www.fcsmartlock.com:8060/app.html?dm=WF1-WIFI-QINGKEhttps://ru.manuals.plus/moes/b097xr41x4-bluetooth-gateway-smart-wifi-hub-manual» target=»_blank»]ru.manuals.plus[/mask_link]