TionAPI / tion_python

Python module for Tion
GNU Lesser General Public License v3.0
64 stars 11 forks source link

Tion lite , notification err. #36

Closed semyond-dev closed 2 years ago

semyond-dev commented 2 years ago

Версия модуля: 1.5.1 Модель бризера: Tion Lite Версия прошивки (если известна): на тионе указана v 1.0.1 , на коробке [G4 - может быть ревизия/партия]

Описание проблемы

После подписки на уведомления (notification) не летит ответ/ после инициализации устройства и указания MAC адреса (условно: dev = Lite(mac) , не выходит из объекта ( видимо где то завис в ожидании калбэка)), в следствии чего программа виснет и дальнейших действий нет. ( прогонял тесты , дебаг логи те же. )

Порядок действий, которые приводят к проявлению проблемы

простое подключение к устройству.

Логи

DEBUG:tion_btle.tion:Connecting
DEBUG:tion_btle.tion:Trying 0/1: _try_connect(args=(<tion_btle.lite.Lite object at 0x7f0fe14e1b50>,),kwargs={})
DEBUG:tion_btle.tion:Enabling notification
DEBUG:tion_btle.tion:Notify handler is 18
DEBUG:tion_btle.tion:Will write b'\x01\x00' to 19 handle with withResponse=True
IATkachenko commented 2 years ago

Доброго дня.

События разворачиваются в __write_to_notify_handle https://github.com/TionAPI/tion_python/blob/3ce32f35eb35cf46a4ad718a9e72bb71a09cabf6/tion_btle/tion.py#L391

Подвисает bluepy.writeCharacteristic. Попробуйте проверить (через bluetoothctl, например) что с подключением к бризеру нет проблем: если все в порядке, то в консоли bluetoothctl вы увидите, как минимум, факт подключения.

IATkachenko commented 2 years ago

С сопряжением, кстати, проблем не было?

semyond-dev commented 2 years ago

Нет, подключение есть, соединение держит, но вот дальше программа не работает... Единственное что я могу сделать , это только подключиться. Про сопряжение , я возможно где то поторопился/совершил ошибку , но вроде как Lite не требует специальной процедуры сопряжения... (поправьте если не прав)

То есть , проблема : подключился и молчит.

p.s.

"""Lite family breezers is not require special pairing procedure"""
IATkachenko commented 2 years ago

"Специальной". Ему нужно обычное BT сопряжение, против специальной процедуры, которая добавляется для 3S. С этим тоже иногда бывают проблемы.

Можете подключиться к бризеру через bluetoothctl (или аналогичную утилиту) и прочитать какие-нибудь данные/характеристики / данные?

semyond-dev commented 2 years ago

Честно говоря не работал с данной утилитой, но попробовал сделать сопряжение и подключение. Поправьте пожалуйста, если где то совершаю ошибки...

cafed00d@cafed00d-vm:/Desktop/tion_ble$ sudo bluetoothctl pair FD:59:E8:4F:3A:6A
Attempting to pair with FD:59:E8:4F:3A:6A
[CHG] Device FD:59:E8:4F:3A:6A Connected: yes
[CHG] Device FD:59:E8:4F:3A:6A ServicesResolved: yes
[CHG] Device FD:59:E8:4F:3A:6A ServicesResolved: no
[CHG] Device FD:59:E8:4F:3A:6A Connected: no
Failed to pair: org.bluez.Error.AuthenticationCanceled
cafed00d@cafed00d-vm:/Desktop/tion_ble$ sudo bluetoothctl connect FD:59:E8:4F:3A:6A
Attempting to connect to FD:59:E8:4F:3A:6A
^Ccafed00d@cafed00d-vm:/Desktop/tion_ble$ sudo bluetoothctl connect FD:59:E8:4F:3A:6A
Attempting to connect to FD:59:E8:4F:3A:6A
Failed to connect: org.bluez.Error.Failed
IATkachenko commented 2 years ago

Это же после включения на бризере в режима сопряжения? Выглядит прилично, но смущает "AuthenticationCanceled". Попробуйте вот это из WiKi интеграции с HA. Возможно ваш случай.

В нормальном состоянии должна быть возможность подключиться к бризеру через bluetoothctl. Если это будет работать -- то будет работать и модуль.

semyond-dev commented 2 years ago
Это же после включения на бризере в режима сопряжения?
semyond-dev commented 2 years ago

Добрый день , проблема решена. По итогу после сопряжение через bluetoothctl все заработало , спасибо за помощь.

Если у вас есть возможность , хотел бы с вами проконсультироваться , т.к. не могу до конца понять/осознать процессы работы с Лайтом. Еще раз спасибо.

IATkachenko commented 2 years ago

В test есть тесты для lite и 4S, которые дают понять как можно работать с бризером. В README есть описание всего (кажется всего) что может модуль.

Если все еще остаются вопросы -- можно написать мне в телеграмм или открыть issue (я когда-нибудь заведу discussions и тут).

semyond-dev commented 2 years ago

С тестами уже поигрался , но все равно тяжело , я Сишник , по этому если вы не против , попросил бы телеграмм.

IATkachenko commented 2 years ago

welcome, ник как на github