TionAPI / HA-tion

Home assistant integration for Tion breezers
Apache License 2.0
70 stars 5 forks source link

Ошибка подключения Tion 4S: Could not get breezer state #127

Open KekcuHa opened 8 months ago

KekcuHa commented 8 months ago

Общая информация

[x] в момент проявления проблемы к бризеру никто не подключен [x] bluetooth в системе работает корректно, действий из WiKi не требуется [x] проблема не похожа ни на одну из FAQ

Краткое описание

Debug-log

2023-12-18 21:22:27.969 DEBUG (MainThread) [custom_components.ha_tion_btle.config_flow] Showing pair info
2023-12-18 21:22:29.358 DEBUG (MainThread) [custom_components.ha_tion_btle.config_flow] Real pairing step
2023-12-18 21:22:29.358 DEBUG (MainThread) [custom_components.ha_tion_btle.config_flow] {'model': 'S4', 'name': 'Tion Breezer', 'mac': 'D5:9E:4D:35:8E:EA', 'keep_alive': 60, 'away_temp': 15, 'pair': True}
2023-12-18 21:22:29.358 DEBUG (MainThread) [tion_btle.tion] Pairing
2023-12-18 21:22:29.358 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
2023-12-18 21:22:29.358 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7fb639d39350>,),kwargs={})
2023-12-18 21:22:30.346 DEBUG (MainThread) [tion_btle.tion] Notifications was not requested
2023-12-18 21:22:30.346 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
2023-12-18 21:22:30.346 DEBUG (MainThread) [tion_btle.tion] Connected. BT pairing ...
2023-12-18 21:22:30.616 DEBUG (MainThread) [tion_btle.tion] Device-specific pairing ...
2023-12-18 21:22:30.616 DEBUG (MainThread) [tion_btle.tion] Device pair is done
2023-12-18 21:22:30.616 DEBUG (MainThread) [tion_btle.tion] disconnected
2023-12-18 21:22:30.616 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
2023-12-18 21:22:30.723 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
2023-12-18 21:22:30.737 WARNING (MainThread) [homeassistant.util.async_] Detected blocking call to sleep inside the event loop by custom integration 'ha_tion_btle' at custom_components/ha_tion_btle/config_flow.py, line 168: time.sleep(3), please report it to the author of the 'ha_tion_btle' custom integration
2023-12-18 21:22:33.738 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
2023-12-18 21:22:33.738 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7fb639d39350>,),kwargs={})
2023-12-18 21:22:34.803 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='connected'
2023-12-18 21:22:34.835 DEBUG (MainThread) [tion_btle.tion] _enable_notifications done
2023-12-18 21:22:34.835 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
2023-12-18 21:22:34.835 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7fb639d39350>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122 Q\t\xd5\xd9\xcb.\xef\xbb\xaa')})
2023-12-18 21:22:34.835 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232205109d5d9cb2eefbbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
2023-12-18 21:22:34.836 DEBUG (MainThread) [tion_btle.tion] Collecting data
2023-12-18 21:22:44.846 DEBUG (MainThread) [tion_btle.tion] Waiting too long for data
2023-12-18 21:22:44.846 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
2023-12-18 21:22:45.062 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
2023-12-18 21:22:45.062 ERROR (MainThread) [custom_components.ha_tion_btle.config_flow] Cannot pair and get data. Data is {'model': 'S4', 'name': 'Tion Breezer', 'mac': 'D5:9E:4D:35:8E:EA', 'keep_alive': 60, 'away_temp': 15, 'pair': True}, result is {}; TionException: ('_get_data_from_breezer', 'Could not get breezer state')
2023-12-18 21:22:55.433 DEBUG (MainThread) [custom_components.ha_tion_btle.config_flow] Pair failed. Returning to first step

bluetoothctl log:

[bluetooth]# pair D5:9E:4D:35:8E:EA
Attempting to pair with D5:9E:4D:35:8E:EA
hci0 type 7 discovering off
[CHG] Device 00:A0:50:29:78:94 RSSI: 0xffffffb6 (-74)
hci0 D5:9E:4D:35:8E:EA type LE Random connected eir_len 30
[CHG] Device D5:9E:4D:35:8E:EA Connected: yes
hci0 D5:9E:4D:35:8E:EA User Confirm 000000 hint 1
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA Bonded: yes
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device E7:2E:01:81:D4:37 ServiceData Key: 0000fe95-0000-1000-8000-00805f9b34fb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device E7:2E:01:81:D4:37 ServiceData Value:
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>    70 20 5b 04 9d 37 d4 81 01 2e e7 09 0a 10 01 1b  p [..7..........
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device 58:2D:34:3A:A9:2D ServiceData Key: 0000fe95-0000-1000-8000-00805f9b34fb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device 58:2D:34:3A:A9:2D ServiceData Value:
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>    50 20 aa 01 8d 2d a9 3a 34 2d 58 0d 10 04 f4 00  P ...-.:4-X.....
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>    7e 01                                            ~.              
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device 58:2D:34:3A:A9:2D ServiceData Key: 0000ffff-0000-1000-8000-00805f9b34fb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device 58:2D:34:3A:A9:2D ServiceData Value:
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>    e3 e9 b3 f2 d0 06                                ......          
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA UUIDs: 98f00001-3788-83ea-453e-f52244709ddb
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA ServicesResolved: yes
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [CHG] Device D5:9E:4D:35:8E:EA Paired: yes
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Primary Service (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000a
        00001801-0000-1000-8000-00805f9b34fb
        Generic Attribute Profile
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000a/char000b
        00002a05-0000-1000-8000-00805f9b34fb
        Service Changed
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Descriptor (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000a/char000b/desc000d
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Primary Service (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000e
        98f00001-3788-83ea-453e-f52244709ddb
        Vendor specific
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000e/char000f
        98f00002-3788-83ea-453e-f52244709ddb
        Vendor specific
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000e/char0011
        98f00003-3788-83ea-453e-f52244709ddb
        Vendor specific
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  [NEW] Descriptor (Handle 0x0000)
        /org/bluez/hci0/dev_D5_9E_4D_35_8E_EA/service000e/char0011/desc0013
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[] Accept pairing with D5:9E:4D:35:8E:EA (yes/no) >>  Pairing successful

cat /var/lib/bluetooth/8C:88:4B:46:16:A3/D5:9E:4D:35:8E:EA

[General]
Name=Breezer 4S
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;98f00001-3788-83ea-453e-f52244709ddb;
Appearance=0x0180

[IdentityResolvingKey]
Key=A1E3077C83BC0844FDF33F0694CC45D2

[LongTermKey]
Key=CB482D47CBCA8346F3D95E98A32405D3
Authenticated=0
EncSize=16
EDiv=43025
Rand=10701135310468999052

[PeripheralLongTermKey]
Key=8C792396E6E36CE8139A3F8BFAA413D6
Authenticated=0
EncSize=16
EDiv=55273
Rand=11291141021525866507

[SlaveLongTermKey]
Key=8C792396E6E36CE8139A3F8BFAA413D6
Authenticated=0
EncSize=16
EDiv=55273
Rand=11291141021525866507

Как можно воспроизвести вашу проблему

  1. Настройки → Устройства и службы → Tion breezer выбираю 4S, указываю MAC и с отмеченным пунктом «Need device pairing?» нажимаю «Подтвердить»
  2. Включаю на бризере режим сопряжения bluetooth (мигает синее кольцо вокруг кнопки)
  3. В диалоге «Device pairing» нажимаю «Подтвердить»

Дополнительное описание

IATkachenko commented 8 months ago

Выглядит так что сопряжение прошло корректно. Попробуйте добавить бризер без включения сопряжения в НА и перевода бризера в режим сопряжения. Должно взлететь.

aatemes commented 7 months ago

@KekcuHa у вас в итоге получилось? Столкнулся с такой же ошибкой на 3S. Пейринг проходит, а данные получить не получается. Но у меня 2 бризера, и тот, что ближе - добавился успешно. Проблема с тем, что подальше. Из этого делаю вывод, что в моем случае эта ошибка вызвана слишком большим расстоянием между бризером и сервером. У вас какое расстояние?

KekcuHa commented 7 months ago

@KekcuHa у вас в итоге получилось?

Не сразу. Первый бризер, данные для подключения которого уже были сохранены, стал доступен из HA после обновления интеграции до 4.1.7. Второй бризер подключил только что по той же самой схеме с использованием bluetoothctl.

Расстояние до обоих бризеров примерно по 8 метров, но на сервере HA используется Bluetooth адаптер с длинными антеннами: Sellerweb RTL-811