Skip to content

При отправке команды (смена режима, температуры или скорости вентилятора) - возникает сбой. #152

@xapepam

Description

@xapepam

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

  • версия Home Assistant: 2025.10.2
  • способ установки Home Assistant:
    [ ] venv
    [ ] Docker
    [x ] Home Assistant OS
  • версия компонента: v4.2.0
  • модель бризера: Lite
  • версия python-модуля: default (Python 3.12.11)

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

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

Время от времени 1 из двух подключенных Tion Lite при попытке послать любую команду, отдают ошибку: ('_get_data_from_breezer', 'Could not get breezer state'). Это может происходить как во время работы автоматизации, так и во время ручного управления. До передатчика от 3 до 5 метров, притом на дальнем бризере ошибки чаще всего происходят. Из этого родилось предположение, что это связано с грязным радио эфиром. Но, в 70% случаев все работает, просто расстраивает сбой автоматизации, которой не помогает даже параметр continue_on_error: true - после первого же сбоя, автоматизация просто отменяется.

Debug-log

2025-10-16 00:58:43.008 WARNING (MainThread) [habluetooth.wrappers] DA:41:09:6E:72:73: BleakClient.connect() called without bleak-retry-connector. For reliable connection establishment, use bleak_retry_connector.establish_connection(). See https://github.com/Bluetooth-Devices/bleak-retry-connector
2025-10-16 00:58:49.065 DEBUG (MainThread) [tion_btle.tion] Enabling notification. self.connection_status='connected'
2025-10-16 00:58:49.092 DEBUG (MainThread) [tion_btle.tion] _enable_notifications done
2025-10-16 00:58:49.092 DEBUG (MainThread) [tion_btle.tion] _connect done. self.connection_status='connected'.
2025-10-16 00:58:49.092 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.lite.TionLite object at 0x7fd378fbecf0>,),kwargs={'request': bytearray(b'\x80\x10\x00:\x022\x12\r\xd7\x1f\x8fH\xd3\xc3\x1a\xbb\xaa')})
2025-10-16 00:58:49.093 DEBUG (MainThread) [tion_btle.tion] Writing 8010003a0232120dd71f8f48d3c31abbaa to 98f00002-3788-83ea-453e-f52244709ddb, self.connection_status='connected'
2025-10-16 00:58:49.095 DEBUG (MainThread) [tion_btle.tion] Collecting data
2025-10-16 00:58:49.114 DEBUG (MainThread) [tion_btle.tion] Got data in 98f00003-3788-83ea-453e-f52244709ddb (Handle: 17): Unknown response 0049003a4631120dd71f8f6f87c3decfd8020e06
2025-10-16 00:58:49.114 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00I\x00:F1\x12\r\xd7\x1f\x8fo\x87\xc3\xde\xcf\xd8\x02\x0e\x06')]
2025-10-16 00:58:49.114 DEBUG (MainThread) [tion_btle.tion] Got data in 98f00003-3788-83ea-453e-f52244709ddb (Handle: 17): Unknown response 40050c1ba9e51200269d1200f434e000ab843300
2025-10-16 00:58:49.115 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00I\x00:F1\x12\r\xd7\x1f\x8fo\x87\xc3\xde\xcf\xd8\x02\x0e\x06'), bytearray(b'@\x05\x0c\x1b\xa9\xe5\x12\x00&\x9d\x12\x00\xf44\xe0\x00\xab\x843\x00')]
2025-10-16 00:58:49.115 DEBUG (MainThread) [tion_btle.tion] Got data in 98f00003-3788-83ea-453e-f52244709ddb (Handle: 17): Unknown response 4000000000000000000000000000000100000000
2025-10-16 00:58:49.115 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00I\x00:F1\x12\r\xd7\x1f\x8fo\x87\xc3\xde\xcf\xd8\x02\x0e\x06'), bytearray(b'@\x05\x0c\x1b\xa9\xe5\x12\x00&\x9d\x12\x00\xf44\xe0\x00\xab\x843\x00'), bytearray(b'@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00')]
2025-10-16 00:58:49.115 DEBUG (MainThread) [tion_btle.tion] Got data in 98f00003-3788-83ea-453e-f52244709ddb (Handle: 17): Unknown response c000000000000a1419020406062300638e
2025-10-16 00:58:49.116 DEBUG (MainThread) [tion_btle.tion] self._data=[bytearray(b'\x00I\x00:F1\x12\r\xd7\x1f\x8fo\x87\xc3\xde\xcf\xd8\x02\x0e\x06'), bytearray(b'@\x05\x0c\x1b\xa9\xe5\x12\x00&\x9d\x12\x00\xf44\xe0\x00\xab\x843\x00'), bytearray(b'@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00'), bytearray(b'\xc0\x00\x00\x00\x00\x00\n\x14\x19\x02\x04\x06\x06#\x00c\x8e')]
2025-10-16 00:58:50.097 DEBUG (MainThread) [tion_btle.tion] Disconnecting. self.connection_status='connected'.
2025-10-16 00:58:52.740 CRITICAL (MainThread) [custom_components.ha_tion_btle] response={}, e=EOFError()
2025-10-16 00:58:52.741 ERROR (MainThread) [custom_components.ha_tion_btle] Unexpected error fetching Br Lite data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 392, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 293, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ha_tion_btle/__init__.py", line 125, in async_update_state
    raise e
  File "/config/custom_components/ha_tion_btle/__init__.py", line 115, in async_update_state
    response = await self.__tion.get()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/tion_btle/tion.py", line 209, in get
    await self.get_state_from_breezer()
  File "/usr/local/lib/python3.13/site-packages/tion_btle/tion.py", line 193, in get_state_from_breezer
    await self.disconnect()
  File "/usr/local/lib/python3.13/site-packages/tion_btle/tion.py", line 517, in disconnect
    await self._disconnect()
  File "/usr/local/lib/python3.13/site-packages/tion_btle/tion.py", line 318, in _disconnect
    await self._btle.disconnect()
  File "/usr/local/lib/python3.13/site-packages/habluetooth/wrappers.py", line 510, in disconnect
    await self._backend.disconnect()
  File "/usr/local/lib/python3.13/site-packages/bleak/backends/bluezdbus/client.py", line 450, in disconnect
    reply = await self._bus.call(
            ^^^^^^^^^^^^^^^^^^^^^
    ...<6 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/dbus_fast/aio/message_bus.py", line 398, in call
    await future
  File "src/dbus_fast/aio/message_reader.py", line 23, in dbus_fast.aio.message_reader._message_reader
  File "src/dbus_fast/_private/unmarshaller.py", line 868, in dbus_fast._private.unmarshaller.Unmarshaller._unmarshall
  File "src/dbus_fast/_private/unmarshaller.py", line 732, in dbus_fast._private.unmarshaller.Unmarshaller._read_header
  File "src/dbus_fast/_private/unmarshaller.py", line 453, in dbus_fast._private.unmarshaller.Unmarshaller._read_to_pos
  File "src/dbus_fast/_private/unmarshaller.py", line 393, in dbus_fast._private.unmarshaller.Unmarshaller._read_sock_with_fds
EOFError

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

  1. Заходим в управление устройством.
  2. Выбираем предустановленный режим Турбо. Дожидаемся переключения, оно либо произойдет, либо сразу же ошибка.
  3. Если переключение произошло, то переключаемся на другой режит, например "Сон", в 1 из 3 случаев, будет сбой.

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

Тоже самое на установке температуры и скорости вентилятора. Можно легко повторить руками и все получится скорее всего. Заметил,
что при ошибке режим может сброситься на "нет". т.е. проблема именно с получением текущего статуса устройства перед изменением этого статуса.
Так же в логах вижу: 025-10-16 01:08:09.783 WARNING (MainThread) [habluetooth.wrappers] E0:48:80:2C:99:E5: BleakClient.connect() called without bleak-retry-connector. For reliable connection establishment, use bleak_retry_connector.establish_connection(). See https://github.com/Bluetooth-Devices/bleak-retry-connector - возможно это может помочь, если последовать рекомендации.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions