Страница 1 из 13

[Модуль] BLEtool (bletool)

Добавлено: Вс ноя 25, 2018 3:52 pm
directman66
Выложен в общий доступ модуль для работы с BLE устройствами. Модуль использует утилиты, входящие в комплект Bluez (hcitool, gatttool), поэтому использование возможно только в linux. В ubuntu 18.04 данные утилиты поставляются штатно и уже были включены в дистрибутив. В raspbian эти утилиты также предуставновлены.

Фукционал тестировался с использованием USB стика CSR4 BTD-401

https://ru.aliexpress.com/item/Bluetoot ... 33edeKwEac

На предыдущей версии ubuntu данный стик не определялся ядром. После обновления ядра на стабильное LTS, стик видится без каких-либо танцев с бубном.

В виду того, что hcitool требует повышения прав, команды сканирования эфира записаны через sudo. Чтобы корректно работали функции сканирования, придется исключить запрос пароля для пользователя www-data, или того, от которого запущен apache2.

Для этого в консоли нужно выполнить sudo visudo и прописать в конце файла:

Код: Выделить всё

www-data ALL=(root) NOPASSWD: /usr/bin/timeout
www-data ALL=(root) NOPASSWD: /usr/bin/hcitool
www-data ALL=(root) NOPASSWD: /bin/echo
www-data ALL=(root) NOPASSWD: /usr/bin/gatttool
www-data ALL=(root) NOPASSWD: /bin/hciconfig
Впоследствии наверно можно будет прописать только требующие повышения пакеты. Я пока эту часть не тестировал.

Возможности:
1) сканирование эфира на наличие доступных bluetooth устройств
2) Получение доступных сервисов устройства
3) Получение доступных handle устройств https://www.bluetooth.com/specifications/gatt/services

В настоящее время поддерживается следующее оборудование:

1) mi flora plant ( для версии прошивки выше 2.6.6). Запрос осуществляется в интерактивном режиме.
https://www.open-homeautomation.com/201 ... nt-sensor/
https://wiki.hackerspace.pl/projects:xiaomi-flora
http://www.n8chteule.de/zentris-blog/20 ... ogramming/
Доступно :
- запрос версии прошивки
- получение процента остатка заряда батареи
- уровня соли почвы
- освещенности
- температуры

2) eq-3 radiator thermostat
https://github.com/Heckie75/eQ-3-radiat ... tat-api.md

Можно просматривать:
1) Текущий режим работы (auto, manual)
2) Режим отпуска (vocation)
3) Модель и серийный номер устройства
4) Целевая температура
5) Режим открыто окно
6) Включен ли режим быстрого нагрева (boost)
7) locked
8) Предупреждение о низком заряде батареи (lowbattery).

Управление пока не готово, но в планах.



3) Браслеты
mi bi band 1s и mi band 2
Доступно:
- уровень заряда батарей
- количество шагов за день


Список оборудования, поддержка которого планируется в дальнейшем:
1) LYWSDCGQ/01ZM (xiaomi ble гигротермограф) https://github.com/vitamin-caig/mitemp/ ... mp-poll.py
2) весы Gason S4
3) Чайник mi kettle (обменивается шифроваванными пакетами, поэтому маловероятно) https://4pda.ru/forum/index.php?showtop ... ry67207028.

Тестирование показало, что подключение устройств ble стабильно работает в пределах одного помещения. Через стены сигнал проходит с трудом. На aliexpress имеются стики с антенной, возможно это как то улучшит покрытие, я пока не тестировал.

Ссылка на актуальную версию модуля https://github.com/directman66/majordom ... ter.tar.gz
Модуль в коннекте: https://connect.smartliving.ru/addons/c ... 1/151.html (поддержать разработку можно тут)

Похожие темы:
http://majordomo.smartliving.ru/forum/v ... f=8&t=5459 про весы
http://majordomo.smartliving.ru/forum/v ... f=8&t=5501 ready for sky


Также как альтернатива, имеются интересные проекты шлюзов ble2mqtt для esp32.
https://github.com/1technophile/OpenMQTTGateway
https://connect.smartliving.ru/profile/ ... og126.html
https://github.com/zewelor/bt-mqtt-gateway
СпойлерПоказать
flora2.png
flora2.png (39.72 КБ) 10741 просмотр

Re: [Модуль] BLEtool (bletool)

Добавлено: Пн ноя 26, 2018 10:44 pm
directman66
1) Добавлено получение параметров радиаторного термостата eq-3 (режим работы, целевая температура, серийный номер, процент открытия)
2) Добавлены фотографии устройств
3) Автоматическое определение типа устройств (mi flora, eq3-thermostat).

Re: [Модуль] BLEtool (bletool)

Добавлено: Вт ноя 27, 2018 1:41 pm
directman66
1) Исправлены метрики для mi flora
СпойлерПоказать
flora.png
flora.png (32 КБ) 10742 просмотра
2) Добавлена вкладка Info (показывает статус bluetooth оборудования, проверку на sudo).

Re: [Модуль] BLEtool (bletool)

Добавлено: Вт ноя 27, 2018 4:57 pm
eeak1
Отчитываюсь:
Нашлись чайник редмонд и ми банд 2. Выставил поллинг, нажимаю "сохранить" - не сохраняет. Привязываю шаги к свойству объекта, нажимаю "обновить" - не сохраняет.

Re: [Модуль] BLEtool (bletool)

Добавлено: Вт ноя 27, 2018 5:21 pm
directman66
Есть кнопки 'обновить' на вкладках или get serveces/get handles/get data с основной страницы. Их проверьте пож-та. Полинг заработает вместе с циклом, но его я пока не добавлял. Нужно отладить, чтобы стабильно работало вручную. Чайника редмонд у меня нет. Есть описание его протокола?

Re: [Модуль] BLEtool (bletool)

Добавлено: Вт ноя 27, 2018 5:54 pm
directman66
Нашел ми банд 2 где-то в закормах ) Заряжаю.

Re: [Модуль] BLEtool (bletool)

Добавлено: Вт ноя 27, 2018 6:08 pm
iden
Привет @directman66.
У меня все крутится на Raspberry Pi 3, просто установил ваш модуль и работает. Хорошо что вспомнил про встроенный блютуз, уже хотел с али свисток заказывать)
mi-flora работает так сказать из коробки, тут все отлично данные получаю.
MJ_HT_V1 (xiaomi ble гигрометр с экраном) определяет но данных нет (если что помогу потестить)
RK-M171S чайник Redmond(его в списке нет) выбрал g200s нет данных, его наверняка спарить нужно (как?) или нет?
За модуль огромное СПАСИБО!

Re: [Модуль] BLEtool (bletool)

Добавлено: Ср ноя 28, 2018 2:19 pm
RFSlab
iden писал(а):
Вт ноя 27, 2018 6:08 pm
Привет @directman66.
У меня все крутится на Raspberry Pi 3, просто установил ваш модуль и работает. Хорошо что вспомнил про встроенный блютуз, уже хотел с али свисток заказывать)
mi-flora работает так сказать из коробки, тут все отлично данные получаю.
MJ_HT_V1 (xiaomi ble гигрометр с экраном) определяет но данных нет (если что помогу потестить)
RK-M171S чайник Redmond(его в списке нет) выбрал g200s нет данных, его наверняка спарить нужно (как?) или нет?
За модуль огромное СПАСИБО!
Так же подтверждаю:
MJ_HT_V1 (xiaomi ble гигрометр с экраном) определяется, но данных нет.

Огромное спасибо за модуль, очень жду окончательной отладки этого модуля!

Re: [Модуль] BLEtool (bletool)

Добавлено: Ср ноя 28, 2018 2:57 pm
directman66
Гигрометр его не прописывал, нет его у меня ) Для всех устройств только картинки добавлены.

Есть описание реверса протокола?

вот ссылка на тестовый зарос для мифлоры. Можно по аналогии сделать для каждого устройства.
https://github.com/directman66/majordom ... a_test.php

Re: [Модуль] BLEtool (bletool)

Добавлено: Ср ноя 28, 2018 4:33 pm
iden
ясно.
по чайнику тут находил.
по гигрометру и вообще по ble Xiaomi вообще ничего нет (кроме мифлоры).