Open Disperion opened 2 years ago
Привет. Да вот надо разобраться, почему он не работает одновременно с gatttool.
Привет. Извините за долгое молчание. В общем я описывал суть проблемы здесь
Как мне кажется, gatttool (тут могу быть не прав, не очень детально смотрел твой код) долго (и/или часто) держит интерфейс в состоянии сканирования с включенным белым списком (в этом списке только мак-адрес устройства skykettle), что, естественно, приводит к прерыванию потока данных от других устройств. Причем это становится ощутимо на интерфейсе BT5.0. С BT4.0 негативный эффект от одновременной работы двух интеграций с одним интерфейсом практически незаметен. Еще @rchovan отмечает, что hcitool работает ощутимо медленнее на интерфейсе BT5.0 (это субъективное ощущение может быть связано именно с прерыванием потока данных от других устройств, а может действительно просто он работает медленнее по какой то причине)... Возможно, дело в том, что обе утилиты (и hcitool и gatttool) находятся в статусе deprecated уже довольно давно, и могут плохо работать с новыми BT-чипсетами, я не знаю...
Все, что делает ble_monitor, это раз в минуту (это период по умолчанию) перезапускает сканирование на интерфейсе и парсит полученные за прошедший период события. Другая интеграция (или другой системный софт) может перевести интерфейс в другой режим, прервав тем самым сканирование, но для ble_monitor и пользователя это будет практически незаметно, если это продлится не долго (по истечении текущего периода ble_monitor просто перезапустит сканирование, и все вернется на круги своя). А вот если интерфейс будет удерживаться в другом режиме достаточно долго (и/или часто), то прерывание потока данных может стать ощутимым (провалы на графиках, например). Теоретически, в такой ситуации можно попробовать поиграться продолжительностью периода в ble_monitor и в конфликтующей интеграции - но это в любом случае лотерея, поскольку многое еще будет зависеть от того, какая интеграция стартанет первой, и насколько быстрее, поэтому я обычно советую пользователям разнести их по разным интерфейсам, то есть выделить под ble_monitor один интерфейс, а для соединений с устройствами использовать другой.
Не уверен, что моя память не шутит со мной, но в нашем случае там вообще вроде бы ситуация такова, что gatttool на интерфейсе BT4.0 включает сканирование без белого списка, а на BT5.0 - с белым списком почему то... Надо снова лезть в журналы от @rchovan, но у меня сейчас со временем туговато...
Ты не думал уходить от использования hcitool и gatttool?
У меня сейчас тоже со временем туговато. Можно попробовать уйти от gatttool, лишь бы работало стабильно.
А на что лучше перейти с gatttool? Может лучше вообще какую-то готовую питоновскую библиотеку использовать?
Или PyBluez.
Приветствую! Могу только посоветовать обратить внимание на эту сводную таблицу - https://github.com/ukBaz/python-bluezero/wiki И вообще посмотри репозитории ukBaz. Мне его наработки здорово помогли в свое время. Там много полезного относительно работы с Bluetooth. Возможно, его BLE_GATT закроет твои потребности? Или python-bluezero.
Hello, will be you so kind and write in English, so I can be informed too :-) I'm using translator, and currently I want to add some info. In HA 2022.7 are breaking changes for bluetooth, and because you discussed BT libraries, I'm pointing to this changelog:
https://www.home-assistant.io/blog/2022/07/06/release-20227/#breaking-changes
Integrations which rely on the bluepy
and pybluez
libraries, no longer work in newer versions of Python. bluepy
has seen its last update in December 2018 and hasn’t kept up with changes in the Python world. Similar story with pybluez
.
Hello, will be you so kind and write in English, so I can be informed too :-) I'm using translator, and currently I want to add some info. In HA 2022.7 are breaking changes for bluetooth, and because you discussed BT libraries, I'm pointing to this changelog:
https://www.home-assistant.io/blog/2022/07/06/release-20227/#breaking-changes
Integrations which rely on the
bluepy
andpybluez
libraries, no longer work in newer versions of Python.bluepy
has seen its last update in December 2018 and hasn’t kept up with changes in the Python world. Similar story withpybluez
.
This integration doesn't use bluepy or pybluez.
Please install Home Assistant 2022.8.1 or newer and try version from master. It depends on the new "Bluetooth" integration now, so make sure that it's enabled and works.
@ClusterM приветствую! Если нужны будут подробности о работе ble_monitor, я с радостью отвечу.
Originally posted by @Magalex2x14 in https://github.com/ClusterM/skykettle-ha/issues/9#issuecomment-1055228249
Приветствую! Поделитесь информацией по решению проблемы?