fsaris / home-assistant-awox

AwoX mesh light integration for Home Assistant
MIT License
83 stars 23 forks source link

Timeout / Disconnect / Reconnect Failure ? #91

Closed wickedgalen closed 1 year ago

wickedgalen commented 1 year ago

Hi,

I noticed these errors in my HA Logs recently. Apart from the reactiveness being a bit slow from time to time, 0 up to 1 min, I cannot tell about any user side issues. (Earlier Issues I mentionned here are not really present anymore.)

These are now 3 permanent errors which gather over time:

AowX Mesh: 0.1.4

HA: 2023.2 HACS: 1.30.1

Let me know if more would be needed and/or if there is something on the userside to be done ?

Thank you


Logger: custom_components.awox.awox_mesh Source: helpers/update_coordinator.py:182 Integration: AwoX Mesh lights (documentation, issues) First occurred: 8:43:11 AM (34 occurrences) Last logged: 2:03:50 PM

Timeout fetching awox data (34x)


Logger: custom_components.awox.awoxmeshlight Source: custom_components/awox/awoxmeshlight/init.py:510 Integration: AwoX Mesh lights (documentation, issues) First occurred: 1:01:24 PM (2 occurrences) Last logged: 1:08:39 PM

[jpuNZADI][a4:c1:38:05:02:48] Disconnect failed: [NotConnectedError] (2x)


Logger: custom_components.awox.awox_mesh Source: custom_components/awox/awoxmeshlight/init.py:109 Integration: AwoX Mesh lights (documentation, issues) First occurred: 1:01:24 PM (2 occurrences) Last logged: 1:08:39 PM

[jpuNZADI] Command failed, re-connecting for new attempt - [NotConnectedError] Timed out connecting to a4:c1:38:05:02:48 after 15 seconds. (3x)

Traceback (most recent call last): File "/config/custom_components/awox/awoxmeshlight/init.py", line 311, in writeCommand self.btdevice.char_write(uuid=COMMAND_CHAR_UUID, value=packet, wait_for_response=withResponse) File "/usr/local/lib/python3.10/site-packages/pygatt/device.py", line 121, in char_write return self.char_write_handle(self.get_handle(uuid), value, File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/device.py", line 17, in wrapper return func(self, *args, kwargs) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/device.py", line 48, in char_write_handle self._backend.char_write_handle(self, handle, *args, *kwargs) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 50, in wrapper return func(self, args, kwargs) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 573, in char_write_handle with self._receiver.event("char_written", timeout=timeout): File "/usr/local/lib/python3.10/contextlib.py", line 142, in exit next(self.gen) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 191, in event self.wait(event, timeout) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 157, in wait raise NotificationTimeout() pygatt.exceptions.NotificationTimeout: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/config/custom_components/awox/awoxmeshlight/init.py", line 102, in connect with self._receiver.event("connect", timeout): File "/usr/local/lib/python3.10/contextlib.py", line 142, in exit next(self.gen) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 191, in event self.wait(event, timeout) File "/usr/local/lib/python3.10/site-packages/pygatt/backends/gatttool/gatttool.py", line 157, in wait raise NotificationTimeout() pygatt.exceptions.NotificationTimeout: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/config/custom_components/awox/awox_mesh.py", line 298, in _call_command result = getattr(self._connected_bluetooth_device, command['command'])(**command['params']) File "/config/custom_components/awox/awoxmeshlight/init.py", line 415, in requestStatus return self.writeCommand(C_GET_STATUS_SENT, data, dest, withResponse) File "/config/custom_components/awox/awoxmeshlight/init.py", line 316, in writeCommand self.reconnect() File "/config/custom_components/awox/awoxmeshlight/init.py", line 499, in reconnect return self.connect() File "/config/custom_components/awox/awoxmeshlight/init.py", line 186, in connect self.btdevice = self.adapter.connect(self.mac, timeout=15) File "/config/custom_components/awox/awoxmeshlight/init.py", line 109, in connect raise NotConnectedError(message) pygatt.exceptions.NotConnectedError: Timed out connecting to a4:c1:38:05:02:48 after 15 seconds.


fsaris commented 1 year ago

these warnings are expected. The Bluetooth connection controlled through python isn't that reliable. That's why it tries to reconnect and retry to send the commands automatically for you. It's more of a notice so you know what's happening when the lights respond with a delay.