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

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Вс ноя 25, 2018 3:52 pm

Выложен в общий доступ модуль для работы с 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 КБ) 8889 просмотров
Последний раз редактировалось directman66 Пн фев 18, 2019 11:43 am, всего редактировалось 6 раз.
За это сообщение автора directman66 поблагодарили (всего 11):
VooDooN (Вс ноя 25, 2018 7:45 pm) • odinvolk (Пн ноя 26, 2018 1:46 am) • iden (Вт ноя 27, 2018 6:09 pm) • consul (Ср ноя 28, 2018 1:15 pm) • RFSlab (Ср ноя 28, 2018 2:19 pm) • alex.frost (Ср дек 05, 2018 9:06 pm) • VAD07 (Чт дек 06, 2018 11:23 pm) • andrey040670 (Вс дек 09, 2018 5:06 pm) • Belenkiy (Вт дек 18, 2018 12:07 am) • cheetah (Сб янв 12, 2019 11:34 am) и ещё один
Рейтинг: 12.79%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Пн ноя 26, 2018 10:44 pm

1) Добавлено получение параметров радиаторного термостата eq-3 (режим работы, целевая температура, серийный номер, процент открытия)
2) Добавлены фотографии устройств
3) Автоматическое определение типа устройств (mi flora, eq3-thermostat).
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Вт ноя 27, 2018 1:41 pm

1) Исправлены метрики для mi flora
СпойлерПоказать
flora.png
flora.png (32 КБ) 8890 просмотров
2) Добавлена вкладка Info (показывает статус bluetooth оборудования, проверку на sudo).
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
eeak1
Сообщения: 51
Зарегистрирован: Чт май 12, 2016 9:13 am
Благодарил (а): 22 раза
Поблагодарили: 11 раз
Контактная информация:

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

Сообщение eeak1 » Вт ноя 27, 2018 4:57 pm

Отчитываюсь:
Нашлись чайник редмонд и ми банд 2. Выставил поллинг, нажимаю "сохранить" - не сохраняет. Привязываю шаги к свойству объекта, нажимаю "обновить" - не сохраняет.
Алиса живёт на нубуке с закрытой крышкой в Docker контейнере, соседствует с контейнерами nextcloud, plex, mosquitto, и т.д.
ранее в Docker контейнере на Raspberry Pi 4
ранее натив на Raspberry Pi 3
https://www.eeak.biz
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Вт ноя 27, 2018 5:21 pm

Есть кнопки 'обновить' на вкладках или get serveces/get handles/get data с основной страницы. Их проверьте пож-та. Полинг заработает вместе с циклом, но его я пока не добавлял. Нужно отладить, чтобы стабильно работало вручную. Чайника редмонд у меня нет. Есть описание его протокола?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Вт ноя 27, 2018 5:54 pm

Нашел ми банд 2 где-то в закормах ) Заряжаю.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Вт ноя 27, 2018 6:08 pm

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

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

Сообщение RFSlab » Ср ноя 28, 2018 2:19 pm

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 гигрометр с экраном) определяется, но данных нет.

Огромное спасибо за модуль, очень жду окончательной отладки этого модуля!
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Ср ноя 28, 2018 2:57 pm

Гигрометр его не прописывал, нет его у меня ) Для всех устройств только картинки добавлены.

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

вот ссылка на тестовый зарос для мифлоры. Можно по аналогии сделать для каждого устройства.
https://github.com/directman66/majordom ... a_test.php
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Ср ноя 28, 2018 4:33 pm

ясно.
по чайнику тут находил.
по гигрометру и вообще по ble Xiaomi вообще ничего нет (кроме мифлоры).
Ответить