Closed tms320 closed 2 years ago
Спасибо, посмотрю.
С 2022.9 я потестироваться еще не успел -- в ближайшее время.
Пока видно что слишком часто вылетает вызов update_btle_device
который пересоздает объект для работы с bluetooth.
Похожая ситуация только без частого update_btle_device
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.000 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.000 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.010 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='connected'
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.195 DEBUG (MainThread) [tion_btle.tion] _enable_notifications done
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.195 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.195 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122\xb07\xf2FEz"\x18\xbb\xaa')})
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.196 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232b037f246457a2218bbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.197 DEBUG (MainThread) [tion_btle.tion] Collecting data
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.297 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 002f003aa83132b037f246f10798073f01001404
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.298 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xa812\xb07\xf2F\xf1\x07\x98\x07?\x01\x00\x14\x04')]
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.300 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 400b0c1321d711e7004cfc8600864eec007c0e04
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.301 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xa812\xb07\xf2F\xf1\x07\x98\x07?\x01\x00\x14\x04'), bytearray(b'@\x0b\x0c\x13!\xd7\x11\xe7\x00L\xfc\x86\x00\x86N\xec\x00|\x0e\x04')]
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.302 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response c000000000000600b305
сен 13 09:42:06 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:06.302 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xa812\xb07\xf2F\xf1\x07\x98\x07?\x01\x00\x14\x04'), bytearray(b'@\x0b\x0c\x13!\xd7\x11\xe7\x00L\xfc\x86\x00\x86N\xec\x00|\x0e\x04'), bytearray(b'\xc0\x00\x00\x00\x00\x00\x06\x00\xb3\x05')]
сен 13 09:42:07 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:07.198 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
сен 13 09:42:09 homeassistant 9e215582ae69[1272]: 2022-09-13 09:42:09.648 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
сен 13 09:43:09 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:09.000 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
сен 13 09:43:09 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:09.000 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
сен 13 09:43:09 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:09.461 WARNING (MainThread) [tion_btle.tion] Got exception: [org.bluez.Error.Failed] Software caused connection abort. Will try again
сен 13 09:43:11 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:11.463 DEBUG (MainThread) [tion_btle.tion] Trying 1/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.046 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='disc'
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.046 WARNING (MainThread) [tion_btle.tion] Got exception Not connected while enabling notifications!
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.048 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='disc'.
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.048 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.048 CRITICAL (MainThread) [custom_components.ha_tion_btle] Response is {}
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: 2022-09-13 09:43:13.049 ERROR (MainThread) [custom_components.ha_tion_btle] Unexpected error fetching Tion Breezer data: Not connected
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: Traceback (most recent call last):
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: self.data = await self._async_update_data()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 164, in _async_update_data
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: return await self.update_method()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/config/custom_components/ha_tion_btle/__init__.py", line 123, in async_update_state
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: raise e
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/config/custom_components/ha_tion_btle/__init__.py", line 113, in async_update_state
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: response = await self.__tion.get()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 208, in get
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: await self.get_state_from_breezer()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 188, in get_state_from_breezer
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: await self.connect()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 505, in connect
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: await self._connect()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 308, in _connect
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: await self._enable_notifications()
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 337, in _enable_notifications
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: raise e
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 334, in _enable_notifications
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: await self._btle.start_notify(self.uuid_notify, self._delegation.handleNotification)
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 783, in start_notify
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: raise BleakError("Not connected")
сен 13 09:43:13 homeassistant 9e215582ae69[1272]: bleak.exc.BleakError: Not connected
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.001 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.001 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.013 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='connected'
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.202 DEBUG (MainThread) [tion_btle.tion] _enable_notifications done
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.202 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.202 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122\xbd\x85\x12>\x8c\xcc\xac\x0c\xbb\xaa')})
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.202 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232bd85123e8cccac0cbbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.207 DEBUG (MainThread) [tion_btle.tion] Collecting data
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.299 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 002f003a2d3132bd85123ef10798073fc1001404
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.300 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:-12\xbd\x85\x12>\xf1\x07\x98\x07?\xc1\x00\x14\x04')]
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.300 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 400b0c1421d012e70045fd86008d4dec00591304
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.300 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:-12\xbd\x85\x12>\xf1\x07\x98\x07?\xc1\x00\x14\x04'), bytearray(b'@\x0b\x0c\x14!\xd0\x12\xe7\x00E\xfd\x86\x00\x8dM\xec\x00Y\x13\x04')]
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.301 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response c000000000000600deda
сен 13 09:46:17 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:17.301 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:-12\xbd\x85\x12>\xf1\x07\x98\x07?\xc1\x00\x14\x04'), bytearray(b'@\x0b\x0c\x14!\xd0\x12\xe7\x00E\xfd\x86\x00\x8dM\xec\x00Y\x13\x04'), bytearray(b'\xc0\x00\x00\x00\x00\x00\x06\x00\xde\xda')]
сен 13 09:46:18 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:18.208 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
сен 13 09:46:20 homeassistant 9e215582ae69[1272]: 2022-09-13 09:46:20.606 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
сен 13 09:46:41 homeassistant kernel: i2c_hid i2c-SMO91D0:00: i2c_hid_get_input: incomplete report (53/13568)
сен 13 09:46:46 homeassistant kernel: i2c_hid i2c-SMO91D0:00: i2c_hid_get_input: incomplete report (53/13568)
сен 13 09:47:20 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:20.005 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
сен 13 09:47:20 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:20.006 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.442 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='disc'
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.442 WARNING (MainThread) [tion_btle.tion] Got exception Not connected while enabling notifications!
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.444 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='disc'.
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.444 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.444 CRITICAL (MainThread) [custom_components.ha_tion_btle] Response is {}
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: 2022-09-13 09:47:21.444 ERROR (MainThread) [custom_components.ha_tion_btle] Unexpected error fetching Tion Breezer data: Not connected
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: Traceback (most recent call last):
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: self.data = await self._async_update_data()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 164, in _async_update_data
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: return await self.update_method()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/config/custom_components/ha_tion_btle/__init__.py", line 123, in async_update_state
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: raise e
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/config/custom_components/ha_tion_btle/__init__.py", line 113, in async_update_state
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: response = await self.__tion.get()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 208, in get
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: await self.get_state_from_breezer()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 188, in get_state_from_breezer
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: await self.connect()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 505, in connect
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: await self._connect()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 308, in _connect
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: await self._enable_notifications()
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 337, in _enable_notifications
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: raise e
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 334, in _enable_notifications
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: await self._btle.start_notify(self.uuid_notify, self._delegation.handleNotification)
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 783, in start_notify
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: raise BleakError("Not connected")
сен 13 09:47:21 homeassistant 9e215582ae69[1272]: bleak.exc.BleakError: Not connected
этот блок повторяется очень часто. Спасибо!
Это тоже на 2022.9? Он как-то интересно проваливается через все...
Connecting. self.connection_status='disc'.
DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
WARNING (MainThread) [tion_btle.tion] Got exception: [org.bluez.Error.Failed] Software caused connection abort. Will try again
DEBUG (MainThread) [tion_btle.tion] Trying 1/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f6a1c6c3430>,),kwargs={})
Вот тут мы вышли из _try_connect()
без exception'ов,
DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='disc'
но подключение все еще не устанволено:
WARNING (MainThread) [tion_btle.tion] Got exception Not connected while enabling notifications!
DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='disc'.
DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
CRITICAL (MainThread) [custom_components.ha_tion_btle] Response is {}
Похоже что на стороне bleak
вся магия происходит.
Это тоже на 2022.9? Он как-то интересно проваливается через все...
Home Assistant 2022.9.2
Похоже что это -- продолжение #111
Как я сейчас вижу происходящее: когда мы пытаемся получить что-то от бризера в HA тоже происходит какое-то обращение к bleak
.
Выглядит это примерно так
23:48:47.001 INFO [custom_components.ha_tion_btle] Tion instance update started
23:48:47.002 DEBUG [tion_btle.tion] self.__connections_count=0, self.connection_status='disc'
23:48:47.002 DEBUG [tion_btle.tion] semaphore grabbed
23:48:47.002 DEBUG [tion_btle.tion] Connecting. self.connection_status='disc'.
23:48:47.003 DEBUG [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s3.TionS3 object at 0xb1fe4640>,),kwargs={})
23:48:47.003 DEBUG [bleak.backends.bluezdbus.client] Connecting to device @ FF:FF:FF:FF:FF:FF with hci0
23:48:50.095 INFO [custom_components.ha_tion_btle] update_btle_device called with service_info=BluetoothServiceInfoBleak(name='Tion Breezer 3S', address='FF:FF:FF:FF:FF:FF', rssi=-75, manufacturer_data={}, service_data={}, service_uuids=[], source='local', device=FF:FF:FF:FF:FF:FF: Tion Breezer 3S, advertisement=AdvertisementData(local_name='Tion Breezer 3S')), _change=<BluetoothChange.ADVERTISEMENT: 1>
23:48:50.096 DEBUG [bleak.backends.bluezdbus.client] Device disconnected (/org/bluez/hci0/dev_FF_FF_FF_FF_FF_FF)
23:48:50.096 DEBUG [bleak.backends.bluezdbus.client] _cleanup_all(/org/bluez/hci0/dev_FF_FF_FF_FF_FF_FF)
и после _cleanup_all
уже ничего не происходит.
Что интересно -- во время такого обновления приходит пустой массив service_uuids
.
И если параллельно запросить данные вот таким скриптом
import asyncio
from tion_btle.s3 import TionS3 as Breezer
async def main():
t = Breezer("FF:FF:FF:FF:FF:FF")
print(await t.get())
asyncio.run(main())
все волшебным образом чинится до следующего раза: deadlock в bleak сбрасывается, приходит обновление с нормальными serivce_uuids
и все становится хорошо.
В 2022.9.3 bleak обновили, какие-то еще изменения сделали с bluetooth. Может это решить проблему стабильности?
В 2022.9.4
все точно также.
Я, наверное чего-то в этой жизни не понимаю, но HA с BT сейчас работает как-то совсем не правильно.
Может чуть позже заведу им issue, потому что я честно вызываю connect
, а bleak
выдает
[bleak.backends.bluezdbus.client] Connecting to device
[homeassistant.components.bluetooth.manager] hci0: ...
[custom_components.ha_tion_btle] update_btle_device
[homeassistant.components.bluetooth.manager] hci0: ...
[custom_components.ha_tion_btle] update_btle_device
[homeassistant.components.bluetooth.manager] hci0: ...
[custom_components.ha_tion_btle] update_btle_device
[bleak.backends.bluezdbus.client] Device disconnected
и все, привет.
Не знаю на сколько правильно, но я добавил в cron перезагрузку блютуса на хосте каждый час + иногда передергиваю бризер по питанию. стало получше, но это вообще не решение. даже на костыль не тянет.
Еще обратил внимание, что моя автоматизация долбит бризер до тех пор пока он не примет нужное состояние. Это приводит либо к зависанию бризера, либо он срабатывает на n-ную итерацию и дальше работает норм до следующего изменения состояния..
Ну, поехали, https://github.com/home-assistant/core/issues/78576
Новые обновления в 2022.9.5 потенциально могут улучшить ситуацию?
Обновился. всё тоже самое. Обратил внимание еще что со второй попытки отправить управляющую команду она проходит.
Нажимаю выключить :
2022-09-19 11:01:45.709 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
2022-09-19 11:01:45.709 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>,),kwargs={})
сен 19 11:01:45 homeassistant systemd[164457]: Reached target Bluetooth.
2022-09-19 11:01:47.592 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='disc'
2022-09-19 11:01:47.592 WARNING (MainThread) [tion_btle.tion] Got exception Not connected while enabling notifications!
2022-09-19 11:01:47.619 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='disc'.
2022-09-19 11:01:47.619 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
2022-09-19 11:01:47.630 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139679942939680] Not connected
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1738, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1775, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 676, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 931, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 713, in _handle_entity_call
await result
File "/config/custom_components/ha_tion_btle/climate.py", line 117, in async_set_hvac_mode
await self._async_set_state(is_on=False)
File "/config/custom_components/ha_tion_btle/climate.py", line 239, in _async_set_state
await self.coordinator.set(**kwargs)
File "/config/custom_components/ha_tion_btle/__init__.py", line 152, in set
await self.__tion.set(kwargs)
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 247, in set
await self.connect()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 505, in connect
await self._connect()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 308, in _connect
await self._enable_notifications()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 337, in _enable_notifications
raise e
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 334, in _enable_notifications
await self._btle.start_notify(self.uuid_notify, self._delegation.handleNotification)
File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 805, in start_notify
raise BleakError("Not connected")
bleak.exc.BleakError: Not connected
Далее второй раз нажимаю выключить
11:02:03.771 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
11:02:03.771 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>,),kwargs={})
11:02:03.775 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='connected'
11:02:03.991 DEBUG (MainThread) [tion_btle.tion] _enable_notifications done
11:02:03.991 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
11:02:03.991 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122Px\xae\x83f\x98,\xd4\xbb\xaa')})
11:02:03.992 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132325078ae8366982cd4bbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
11:02:03.995 DEBUG (MainThread) [tion_btle.tion] Collecting data
11:02:04.192 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 002f003a6731325078ae83b22a31e93f81001603
11:02:04.192 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:g12Px\xae\x83\xb2*1\xe9?\x81\x00\x16\x03')]
11:02:04.194 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 400c0d1420019aee004bf18c008759e6009ee51c
11:02:04.194 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:g12Px\xae\x83\xb2*1\xe9?\x81\x00\x16\x03'), bytearray(b'@\x0c\r\x14 \x01\x9a\xee\x00K\xf1\x8c\x00\x87Y\xe6\x00\x9e\xe5\x1c')]
11:02:04.195 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response c0000000000006002f78
11:02:04.196 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:g12Px\xae\x83\xb2*1\xe9?\x81\x00\x16\x03'), bytearray(b'@\x0c\r\x14 \x01\x9a\xee\x00K\xf1\x8c\x00\x87Y\xe6\x00\x9e\xe5\x1c'), bytearray(b'\xc0\x00\x00\x00\x00\x00\x06\x00/x')]
11:02:04.996 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:m02\xdb\xcd;p\x10Y0A\x1e\x00\x00\x16\x03\xb5\x00\xbb\xaa')
11:02:04.997 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>, bytearray(b'\x00\x17\x00:m02\xdb\xcd;p\x10Y0A\x1e\x00\x00\x16\x03')),kwargs={})
11:02:04.997 DEBUG (MainThread) [tion_btle.tion] Writing 0017003a6d3032dbcd3b70105930411e00001603 to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'сен 19 11:02:05 homeassistant bdd91d07f349[1272]: 2022-09-19 11:02:05.001 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>, bytearray(b'\xc0\xb5\x00\xbb\xaa')),kwargs={})
11:02:05.002 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
11:02:05.003 DEBUG (MainThread) [tion_btle.tion] Collecting data
11:02:05.090 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 002f003ae63132dbcd3b70105930413e81001603
11:02:05.091 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xe612\xdb\xcd;p\x10Y0A>\x81\x00\x16\x03')]
11:02:05.092 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response 400c0d1420029aee004cf18c008659e600a2e51c
11:02:05.092 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xe612\xdb\xcd;p\x10Y0A>\x81\x00\x16\x03'), bytearray(b'@\x0c\r\x14 \x02\x9a\xee\x00L\xf1\x8c\x00\x86Y\xe6\x00\xa2\xe5\x1c')]
11:02:05.093 DEBUG (MainThread) [tion_btle.tion] Got data in 17 response c0000000000006009e71
11:02:05.093 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00/\x00:\xe612\xdb\xcd;p\x10Y0A>\x81\x00\x16\x03'), bytearray(b'@\x0c\r\x14 \x02\x9a\xee\x00L\xf1\x8c\x00\x86Y\xe6\x00\xa2\xe5\x1c'), bytearray(b'\xc0\x00\x00\x00\x00\x00\x06\x00\x9eq')]
11:02:06.004 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
11:02:08.643 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
Еще обратил внимание, что иногда в логах проскакивает такое сообщение
2022-09-19 11:07:01.627 ERROR (MainThread) [homeassistant.components.bluetooth.scanner] hci0 (E8:2A:EA:7D:76:B5): Error stopping scanner: [org.bluez.Error.Failed] No discovery started
И еще в дополнении вылазит такое
2022-09-19 11:13:58.080 DEBUG (MainThread) [tion_btle.tion] Connecting. self.connection_status='disc'.
2022-09-19 11:13:58.080 DEBUG (MainThread) [tion_btle.tion] Trying 0/1: _try_connect(args=(<tion_btle.s4.TionS4 object at 0x7f09f0bef8e0>,),kwargs={})
2022-09-19 11:14:03.649 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='disc'.
2022-09-19 11:14:03.649 DEBUG (MainThread) [tion_btle.tion] _disconnect done. self.connection_status='disc'
2022-09-19 11:14:03.650 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139680011208928]
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 168, in connect
reply = await self._bus.call(
File "/usr/local/lib/python3.10/site-packages/dbus_fast/aio/message_bus.py", line 337, in call
await future
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:сен 19 11:14:03 homeassistant bdd91d07f349[1272]:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1738, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1775, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 676, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 931, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 713, in _handle_entity_call
await result
File "/config/custom_components/ha_tion_btle/climate.py", line 117, in async_set_hvac_mode
await self._async_set_state(is_on=False)
File "/config/custom_components/ha_tion_btle/climate.py", line 239, in _async_set_state
await self.coordinator.set(**kwargs)
File "/config/custom_components/ha_tion_btle/__init__.py", line 152, in set
await self.__tion.set(kwargs)
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 247, in set
await self.connect()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 505, in connect
await self._connect()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 302, in _connect
await self._try_connect()
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 31, in wrapper
return await f(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/tion_btle/tion.py", line 295, in _try_connect
return await self._btle.connect(timeout=5.0)
File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 167, in connect
async with async_timeout.timeout(timeout):
File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 129, in __aexit__
self._do_exit(exc_type)
File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 212, in _do_exit
raise asyncio.TimeoutError
Извиняюсь за флуд.
Вот тыкаю кнопки смотрю как реагирует бризер. И вижу четкую закономерность, что на второй тык в короткий промежуток времени он отрабатывает отлично. Моюет быть ему таймаут как то можно добавить, чтобы дольше операцию отрабатывал?
Там не во втором разе дело. Сейчас вам на второй раз везет. Но не это происходит не каждый раз и не всем также везет на второй раз.
Наверное, я зря со своей 2022.8.7 влезаю, но у меня примерно такие же симптомы. Бризеры рандомно отваливаются. У меня их три штуки. Отваливают рандомно, в независимости от силы сигнала и удалённости от приёмника. Началось после обновления подсистемы Bluetooth в HA. Лечится простой перезагрузкой HA, работает даже для docker версии при перезагрузки из меню HA. Логи пытался собирать, но внутри ничего нет нетипичного. Бризер банально перестаёт отвечать и всё.
Не зря, это с 2022.8 началось.
Сейчас есть половинчатое решение: удаление вот этой строки https://github.com/TionAPI/HA-tion/blob/7ed1ac0ef0ef3133524e6eeeb211cfc7671543b7/custom_components/ha_tion_btle/__init__.py#L211 и следующей (212) -- повышает стабильность работы, на какое-то время.
Исправлено в v4.1.0.
Общая информация
[x] в момент проявления проблемы к бризеру никто не подключен [x] bluetooth в системе работает корректно, действий из WiKi не требуется [x] проблема не похожа ни на одну из FAQ
После обновления HA до версии 2022.9.0 начались проблемы ) Бризер через раз реагирует на команды изменения скорости и смены режима работы. В логах примерно такое (пример при попытке изменить скорость):
Прикладываю два лога (они достаточно длинные, поэтому в виде файлов):
Как я понимаю, они там опять что-то в Блютусе "обновили"...