rospogrigio / localtuya

local handling for Tuya devices
GNU General Public License v3.0
2.71k stars 530 forks source link

Multiple smart ceiling lights, FW 1.3.21 are added to LocaTuya, FW 1.5.10 cannot be added #1573

Open jackmtl71 opened 7 months ago

jackmtl71 commented 7 months ago

The problem

I bought several lots of smart ceiling pot lights, same company, same model. more than half of them won't be detected or manually joined to LocalTuya. After lots of fiddling and realizing that always the same lights had issues, i managed ot pull the FW version from Tuya IoT project for all of them. The ones that get detected are on FW version 1.3.21 and the ones that won't join are on FW version 1.5.10

Manually adding them results in "Connection to device succeeded but no datapoints found, please try again. Create a new issue and include debug logs if problem persists"

Environment

Steps to reproduce

1.in LocalTuya: Add Device, choose (...) since undetected

  1. Fill in name, host, Device ID, Local Key
  2. Submit and obtain error message

DP dump

Provide Home Assistant traceback/logs

put your log output between these markers

Additional information

jackmtl71 commented 7 months ago

Assume this could be linked to 3.5 protocol?

jdestefanis commented 7 months ago

I have the same issue with ceiling leds lamps. I got 40 and none of the works with LocalTuya. The version of the firmware is 1.5.21

jdestefanis commented 7 months ago

Here the logs: Logger: custom_components.localtuya.pytuya Source: custom_components/localtuya/pytuya/init.py:863 Integration: LocalTuya integration (documentation, issues) First occurred: 11:44:59 (1 occurrences) Last logged: 11:44:59

[eb0...fyn] Failed to get status: Traceback (most recent call last): File "/usr/local/lib/python3.11/asyncio/tasks.py", line 500, in wait_for return fut.result() ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/locks.py", line 387, in acquire await fut asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/config/custom_components/localtuya/pytuya/init.py", line 863, in detect_available_dps data = await self.status() ^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/localtuya/pytuya/init.py", line 795, in status status = await self.exchange(DP_QUERY) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/localtuya/pytuya/init.py", line 769, in exchange msg = await self.dispatcher.wait_for(seqno, payload.cmd) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/localtuya/pytuya/init.py", line 450, in wait_for await asyncio.wait_for(self.listeners[seqno].acquire(), timeout=timeout) File "/usr/local/lib/python3.11/asyncio/tasks.py", line 502, in wait_for raise exceptions.TimeoutError() from exc TimeoutError

Logger: homeassistant Source: custom_components/localtuya/discovery.py:67 Integration: LocalTuya integration (documentation, issues) First occurred: 11:36:38 (103 occurrences) Last logged: 11:45:18

Error doing job: Exception in callback _SelectorDatagramTransport._read_ready() Traceback (most recent call last): File "/config/custom_components/localtuya/discovery.py", line 65, in datagram_received data = decrypt_udp(data) ^^^^^^^^^^^^^^^^^ File "/config/custom_components/localtuya/discovery.py", line 30, in decrypt_udp return _unpad(decryptor.update(message) + decryptor.finalize()).decode() ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/cryptography/hazmat/primitives/ciphers/base.py", line 186, in finalize data = self._ctx.finalize() ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/ciphers.py", line 222, in finalize raise ValueError( ValueError: The length of the provided data is not a multiple of the block length.

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.11/asyncio/events.py", line 80, in _run self._context.run(self._callback, *self._args) File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 1163, in _read_ready self._protocol.datagram_received(data, addr) File "/config/custom_components/localtuya/discovery.py", line 67, in datagram_received data = data.decode() ^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte

djtoast commented 6 months ago

I have certain lights that was working but I had to reconfigure them to Tuya and since I do not autodetect nor can I add them manualy to localtuya. (They work in the normal Tuya intergration) Firmware 1.5.21 not sure how to tell if it using 3.5 or not protocol.

michaelkr1 commented 5 months ago

Can confirm one of my devices upgraded to 1.5.21 and now cannot be controlled by LocalTuya. Tried deleting and re-adding and it's not detected in the enrolling process. Adding it manually makes it unconfigurable.

andmcg1 commented 1 month ago

Same issue for me. Two devices exact same model. Silly me updated one to v1.5.21 firmware and now LocalTuya will not control the device even if entering and configuring the DPs completely manually. Also tried factory reset of the device and re-added to Tuya. No dice.

Working device is still on V1.2.16. Got to be careful to not push that update prompt in the Tuya app.

Will control via Tuya integration in the meantime, but there is a noticeable delay when pressing a button, compared with LocalTuya, which is instant.

I see that tinytuya supports Tuya protocol 3.5, so I assume it's just a matter of rolling that into LocalTuya.

End ramble - please let me know if I can help!

veryboringname commented 1 month ago

I see that tinytuya supports Tuya protocol 3.5, so I assume it's just a matter of rolling that into LocalTuya.

BTW tuya-local also supports 3.5; I'm running that in conjunction with localtuya in the meantime to get my one light that I upgraded working locally again.

andmcg1 commented 1 month ago

I see that tinytuya supports Tuya protocol 3.5, so I assume it's just a matter of rolling that into LocalTuya.

BTW tuya-local also supports 3.5; I'm running that in conjunction with localtuya in the meantime to get my one light that I upgraded working locally again.

I moved over to this fork, which was able to be just installed over the top without reconfiguring all devices: https://github.com/xZetsubou/hass-localtuya