Commit Graph

73 Commits

Author SHA1 Message Date
rospogrigio
c9d6bc521e Fixed sequence numbering on status update 2023-01-10 22:24:05 +01:00
rospogrigio
edc6752ecf Fixed negotiation and sequence numbers for protocol 3.4 2023-01-10 22:24:05 +01:00
rospogrigio
960f07b6bb Fixed requested DPs for type_0d devices 2023-01-10 22:24:05 +01:00
rospogrigio
a3914cc8ce Added debugging 2023-01-10 22:24:05 +01:00
rospogrigio
0fb619960c Fixed HEARTBEAT command 2023-01-10 22:24:05 +01:00
rospogrigio
957cf25dd0 Introduced pytuya with support for 3.4 protocol 2023-01-10 22:24:05 +01:00
sibowler
ad1f757818 Implementing RESET Tuya function to enable devices which are stuck in a zombie mode to start responding to commands. Added configurable DPS for Reset command as found devices wouldn't 'wake up' unless they had exactly the right entries 2022-07-20 06:14:12 +10:00
Martín Villagra
0db320ee36 add whitelist with 18,19,20 2021-12-01 15:43:33 +00:00
Martín Villagra
943bfa532e log dps_cache 2021-11-30 17:09:08 +00:00
Martín Villagra
3cbe6751d3 revert changes, dont wait for response but use all detected dps 2021-11-29 03:39:22 +00:00
Martín Villagra
23e48b791a revert defaulting to all dps 2021-11-28 10:46:28 +00:00
Martín Villagra
d6e7c7dec4 send updatedps with all detected dps by default 2021-11-28 01:46:12 +00:00
Martín Villagra
9c6de40731 handle updatedps response 2021-11-27 15:42:05 +00:00
Martín Villagra
515b3303e9 add polling option 2021-11-24 00:05:42 +00:00
Martín Villagra
47c4edc20d fix lint issues 2021-11-23 21:20:43 +00:00
Martín Villagra
e13f02a881 send update dps command with heartbeat 2021-11-23 21:18:17 +00:00
ultratoto14
3a4940387c Use debug message for timeout. 2020-12-17 15:01:02 +01:00
Pierre Ståhl
f72cbc0b5a Run pylint from tox (#243) 2020-12-17 09:26:55 +01:00
ultratoto14
89dabfc105 Reduce heartbeat interval. 2020-12-15 17:12:52 +01:00
Pierre Ståhl
10e55e67b4 Add support for passive devices (#171)
* Add support for passive devices

* Fix a few issues

* Fix broken handling of closing a connection

This fixes the following error:

  AttributeError: 'NoneType' object has no attribute 'write'

* Always use discovery broadcasts to trigger connects

From now on there's no connect loop but all attempts are initiated by
received discovery messages.

* Fix cancelling of heartbeat task

* Verify entry has been loaded before connecting

* Don't reset seqno when switching to type_d device
2020-12-15 09:08:46 +01:00
Pierre Ståhl
f376d8584a Fix broken exception logging (#173) 2020-11-20 10:40:35 +01:00
Pierre Ståhl
0531a284c7 Add contextual logging where applicable (#124)
* Add contextual logging where applicable

* Compress device id in log output
2020-11-17 12:54:01 +01:00
ultratoto14
657850e39c Add support of RGB lights (#120)
* Make set_dps available.

* Adding RGB support, brightness fix, color_temp range.

* Update README for light options

* Formatting

* Formatting

* Need to force to white to ensure color picker is updated.

* Detect color mode RGB/HSV based on color length.

* Extract rgb encoded color check in method.

* Make check method private.

* Fix exception when color is not available (maybe when powered off)

* Reformat.
2020-10-28 09:54:54 +01:00
Kendell R
c1878f82e2 Improve GitHub Actions (#97)
* Delete hassfest.yaml

* Update and rename ci.yaml to tox.yaml

* Create combined.yaml

* Update hacs.json

* Update README.md

* Update combined.yaml

* Remove unused import

* Restored wrongly deleted line in cover.py

* Update config_flow.py

* Update __init__.py

Co-authored-by: Pierre Ståhl <pierre.staahl@gmail.com>
Co-authored-by: rospogrigio <49229287+rospogrigio@users.noreply.github.com>
2020-10-22 11:43:47 +02:00
Pierre Ståhl
3f854337ad Fix status exception when no payload 2020-10-21 12:09:06 +02:00
Pierre Ståhl
e6538a4681 Fix bugs in pytuya
This handles responses without a return code and also fixes support for
unencrypted clients. Made a few tweaks to debug logs as well.
2020-10-19 10:43:31 +02:00
Pierre Ståhl
47d2900a2c Add set_dps to set multiple datapoints 2020-10-15 18:54:36 +02:00
Pierre Ståhl
44db913514 Rename set_dps to set_dp in pytuya 2020-10-15 18:54:36 +02:00
Pierre Ståhl
81c04bfc4e Fix broken support for 0d devices 2020-10-15 18:48:34 +02:00
Pierre Ståhl
136e44c549 Minor final fixes 2020-10-14 13:10:20 +02:00
Pierre Ståhl
b0603313ff Fixed some bugs 2020-10-14 13:10:20 +02:00
Pierre Ståhl
91f788865c Add more temporary logging 2020-10-14 13:10:20 +02:00
Pierre Ståhl
ff3ca99b29 Add logging and stability fixes 2020-10-14 13:10:20 +02:00
Pierre Ståhl
7384f1fc54 Add context to pytuya logging 2020-10-14 13:10:20 +02:00
Pierre Ståhl
59dfc35759 Fix bug when unloading an entry 2020-10-14 13:10:20 +02:00
Pierre Ståhl
b2c4e93a47 Disconnect on missing heartbeats 2020-10-14 13:10:20 +02:00
Pierre Ståhl
f971646333 Close connection properly on error 2020-10-14 13:10:20 +02:00
Pierre Ståhl
2565074c9c Add missing await 2020-10-14 13:10:20 +02:00
Pierre Ståhl
cad31f1ffe Convert pytuya to asyncio 2020-10-14 13:10:20 +02:00
rospogrigio
2e46d65f9a removing unused method after merge 2020-09-30 11:51:13 +02:00
rospogrigio
deeaf0e9eb More lint fixes 2020-09-30 11:51:13 +02:00
rospogrigio
e5ce098016 More lint fixes 2020-09-30 11:51:13 +02:00
rospogrigio
56c266d344 Fixing lint output 2020-09-30 11:51:13 +02:00
rospogrigio
3fc19da259 Updating the status of TuyaDevice using the response of the set_dps() call 2020-09-30 11:51:13 +02:00
Pierre Ståhl
d9c6d66bb7 Fix review comments 2020-09-30 09:45:37 +02:00
Pierre Ståhl
b50cd7bf84 Initial work on refactoring pytuya
Still lots of things to improve, but it's a start. Will continue with
receive code.
2020-09-30 09:45:37 +02:00
Pierre Ståhl
b7173f3033 Switch to cryptograhy for crypto routines 2020-09-27 09:48:03 +02:00
Pierre Ståhl
02a2f08c40 Enable codespell and fix mistakes 2020-09-23 18:33:10 +02:00
Pierre Ståhl
4e72767b30 Fix flake8 issues and enable flake8 in tox 2020-09-23 17:50:24 +02:00
Pierre Ståhl
a18c69f8eb Fix pydocstyle issues and enable in tox 2020-09-23 16:47:08 +02:00