xZetsubou / hass-localtuya

🔹 A Home Assistant integration to handle Tuya devices locally "fork from localtuya"
https://xzetsubou.github.io/hass-localtuya/
GNU General Public License v3.0
366 stars 41 forks source link

[Bug]: Exception in attempt to write to already disconnected transport #254

Closed Lurker00 closed 3 months ago

Lurker00 commented 3 months ago

LocalTuya Version

2024.5.0

Home Assistant Version

2024.5.5

Environment

What happened?

The gateway had dropped all the connections twice in a few seconds, and this exception happened.

Log records just before the exception ``` 2024-05-29 00:07:19.818 INFO (MainThread) [custom_components.localtuya.core.pytuya] [bff...hco] Connection lost: None 2024-05-29 00:07:19.820 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Disconnected: ВС: Выключатель 192.168.0.32 a4c138f27b386d9f 2024-05-29 00:07:19.821 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Disconnected: ВС: Выключатель 192.168.0.32 a4c138f27b386d9f 2024-05-29 00:07:19.822 INFO (MainThread) [custom_components.localtuya.coordinator] [bf0...f1a] Disconnected: ВС: T&H Сенсор 192.168.0.32 a4c138a6806b370a 2024-05-29 00:07:19.824 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...huv] Disconnected: ВС: Zigbee Bulb 192.168.0.32 a4c13831f2186b11 2024-05-29 00:07:19.825 INFO (MainThread) [custom_components.localtuya.coordinator] [bf9...5wg] Disconnected: ВС: Чёрная кнопка 192.168.0.32 6c5cb1fffe9a6175 2024-05-29 00:07:19.830 INFO (MainThread) [custom_components.localtuya.coordinator] [bfe...edr] Disconnected: ВС: Реле 4х 192.168.0.32 a4c138b123b8e31b 2024-05-29 00:07:19.831 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...l4c] Disconnected: ВЛ1: Beacon RGBCW 192.168.0.32 dc234f7bcd8e 2024-05-29 00:07:19.833 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...sqd] Disconnected: ВЛ2: Beacon RGBCW 192.168.0.32 dc234f7258f6 2024-05-29 00:07:19.835 INFO (MainThread) [custom_components.localtuya.coordinator] [bf6...hwj] Disconnected: ВЛ3: LED BULB B509Z2 192.168.0.32 dc234fabe373 2024-05-29 00:07:22.824 INFO (SyncWorker_62) [custom_components.localtuya.coordinator] [bff...hco] Disconnected: ВС: Выключатель 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.825 INFO (SyncWorker_36) [custom_components.localtuya.coordinator] [bf0...f1a] Disconnected: ВС: T&H Сенсор 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.843 INFO (SyncWorker_38) [custom_components.localtuya.coordinator] [bf4...huv] Disconnected: ВС: Zigbee Bulb 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.862 INFO (SyncWorker_36) [custom_components.localtuya.coordinator] [bf9...5wg] Disconnected: ВС: Чёрная кнопка 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.863 INFO (SyncWorker_40) [custom_components.localtuya.coordinator] [bfe...edr] Disconnected: ВС: Реле 4х 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.872 INFO (SyncWorker_36) [custom_components.localtuya.coordinator] [bf4...l4c] Disconnected: ВЛ1: Beacon RGBCW 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.873 INFO (SyncWorker_50) [custom_components.localtuya.coordinator] [bf4...sqd] Disconnected: ВЛ2: Beacon RGBCW 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:22.875 INFO (SyncWorker_40) [custom_components.localtuya.coordinator] [bf6...hwj] Disconnected: ВЛ3: LED BULB B509Z2 192.168.0.32 waiting for discovery broadcast 2024-05-29 00:07:36.029 WARNING (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Connect to 192.168.0.32 failed: Command 16 timed out waiting for sequence number 10 2024-05-29 00:07:36.094 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Success: connected to ВС: Выключатель - 192.168.0.32 2024-05-29 00:07:36.103 INFO (MainThread) [custom_components.localtuya.coordinator] [bf0...f1a] Success: connected to ВС: T&H Сенсор - 192.168.0.32 2024-05-29 00:07:36.115 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...huv] Success: connected to ВС: Zigbee Bulb - 192.168.0.32 2024-05-29 00:07:36.128 INFO (MainThread) [custom_components.localtuya.coordinator] [bf9...5wg] Success: connected to ВС: Чёрная кнопка - 192.168.0.32 2024-05-29 00:07:36.180 INFO (MainThread) [custom_components.localtuya.coordinator] [bfe...edr] Success: connected to ВС: Реле 4х - 192.168.0.32 2024-05-29 00:07:36.191 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...l4c] Success: connected to ВЛ1: Beacon RGBCW - 192.168.0.32 2024-05-29 00:07:36.192 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...sqd] Success: connected to ВЛ2: Beacon RGBCW - 192.168.0.32 2024-05-29 00:07:36.194 INFO (MainThread) [custom_components.localtuya.coordinator] [bf6...hwj] Success: connected to ВЛ3: LED BULB B509Z2 - 192.168.0.32 2024-05-29 00:07:36.194 INFO (MainThread) [custom_components.localtuya.core.pytuya] [bff...hco] Connection lost: None 2024-05-29 00:07:36.194 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Disconnected: ВС: Выключатель 192.168.0.32 a4c138f27b386d9f 2024-05-29 00:07:36.195 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Disconnected: ВС: Выключатель 192.168.0.32 a4c138f27b386d9f 2024-05-29 00:07:36.195 INFO (MainThread) [custom_components.localtuya.coordinator] [bf0...f1a] Disconnected: ВС: T&H Сенсор 192.168.0.32 a4c138a6806b370a 2024-05-29 00:07:36.195 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...huv] Disconnected: ВС: Zigbee Bulb 192.168.0.32 a4c13831f2186b11 2024-05-29 00:07:36.195 INFO (MainThread) [custom_components.localtuya.coordinator] [bf9...5wg] Disconnected: ВС: Чёрная кнопка 192.168.0.32 6c5cb1fffe9a6175 2024-05-29 00:07:36.201 INFO (MainThread) [custom_components.localtuya.coordinator] [bfe...edr] Disconnected: ВС: Реле 4х 192.168.0.32 a4c138b123b8e31b 2024-05-29 00:07:36.201 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...l4c] Disconnected: ВЛ1: Beacon RGBCW 192.168.0.32 dc234f7bcd8e 2024-05-29 00:07:36.201 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...sqd] Disconnected: ВЛ2: Beacon RGBCW 192.168.0.32 dc234f7258f6 2024-05-29 00:07:36.202 INFO (MainThread) [custom_components.localtuya.coordinator] [bf6...hwj] Disconnected: ВЛ3: LED BULB B509Z2 192.168.0.32 dc234fabe373 2024-05-29 00:07:38.305 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Success: connected to ВС: Выключатель - 192.168.0.32 2024-05-29 00:07:38.309 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Sub-devices heartbeat started ВС: Выключатель - 192.168.0.32 2024-05-29 00:07:38.503 INFO (MainThread) [custom_components.localtuya.coordinator] [bff...hco] Success: connected to ВС: Выключатель - 192.168.0.32 2024-05-29 00:07:38.606 INFO (MainThread) [custom_components.localtuya.coordinator] [bf0...f1a] Success: connected to ВС: T&H Сенсор - 192.168.0.32 2024-05-29 00:07:38.627 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...huv] Success: connected to ВС: Zigbee Bulb - 192.168.0.32 2024-05-29 00:07:38.633 INFO (MainThread) [custom_components.localtuya.coordinator] [bf9...5wg] Success: connected to ВС: Чёрная кнопка - 192.168.0.32 2024-05-29 00:07:38.637 INFO (MainThread) [custom_components.localtuya.coordinator] [bfe...edr] Success: connected to ВС: Реле 4х - 192.168.0.32 2024-05-29 00:07:38.640 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...l4c] Success: connected to ВЛ1: Beacon RGBCW - 192.168.0.32 2024-05-29 00:07:38.651 INFO (MainThread) [custom_components.localtuya.coordinator] [bf4...sqd] Success: connected to ВЛ2: Beacon RGBCW - 192.168.0.32 2024-05-29 00:07:38.911 INFO (MainThread) [custom_components.localtuya.coordinator] [bf6...hwj] Success: connected to ВЛ3: LED BULB B509Z2 - 192.168.0.32 2024-05-29 00:07:46.232 ERROR (MainThread) [custom_components.localtuya.core.pytuya] [bff...hco] Heartbeat failed (Error on sending data: 'NoneType' object has no attribute 'write'), disconnecting ```

I think not only the case self.transport is None should be handled in transport_write, but also command_delay loop should be stopped on disconnect.

Steps to reproduce.

Don't know

Relevant log output

2024-05-29 00:07:46.232 ERROR (MainThread) [custom_components.localtuya.core.pytuya] [bff...hco] Heartbeat failed (Error on sending data: 'NoneType' object has no attribute 'write'), disconnecting
Traceback (most recent call last):
File "/config/custom_components/localtuya/core/pytuya/__init__.py", line 979, in transport_write
self.transport.write(data)
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'write'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/localtuya/core/pytuya/__init__.py", line 909, in heartbeat_loop
await self.heartbeat()
File "/config/custom_components/localtuya/core/pytuya/__init__.py", line 1111, in heartbeat
return await self.exchange(HEART_BEAT)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/localtuya/core/pytuya/__init__.py", line 1071, in exchange
await self.transport_write(enc_payload, delay)
File "/config/custom_components/localtuya/core/pytuya/__init__.py", line 982, in transport_write
raise Exception(f"Error on sending data: {ex}")

Diagnostics information.

No response

github-actions[bot] commented 3 months ago

This issue was closed because it was resolved on the release: 2024.6.0