Python library for interacting with Tuya-based devices using asyncio
Project description
Async Tuya LAN Control
Integration with TuyaCloud smart home devices using local LAN control and Python's asyncio library. This library was thrown together in a week to support some cheap bulbs that I bought expecting to use Tuya-Convert on, but got hit with the latest firmware version from Tuya. At the time, I couldn't find any Python Tuya libraries supporting asyncio for local push use in Home Assistant.
I only have tested Tuya lights with this library as that is the only device I own, I will include classes for the additional devices, but they will need to be tested to confirm usage.
Example Usage
This library requires the device ID and the local key for the device you want to control. I found it easiest to snag the local key from an older version of the Smart Life app's preferences.xml on a rooted Android phone. There are other methods you can read about here.
from aiotuyalan import TuyaLight
import asyncio
IP = '192.168.1.26'
LOCAL_KEY = 'fffff00000ffffff'
DEVICE_ID = 'ffff000fff00f0f0f000'
async def main():
loop = asyncio.get_running_loop()
device = TuyaLight(loop, IP, DEVICE_ID, LOCAL_KEY, version='3.3')
async def on_update():
print("Received device update.")
await device.set_color_temp(40)
await device.set_brightness(255)
await device.disconnect()
async def on_stop():
print("Disconnected from device.")
loop.stop()
await device.set_on_update(on_update)
await device.set_on_stop(on_stop)
while True:
try:
await device.connect()
break
except Exception as err:
print("Error occcured during connection: ", err)
print("Trying again in 5 seconds...")
await asyncio.sleep(5)
print("Connected to device!")
loop = asyncio.get_event_loop()
try:
asyncio.ensure_future(main())
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
loop.close()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiotuyalan-0.0.3.tar.gz
.
File metadata
- Download URL: aiotuyalan-0.0.3.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68e549934d7e0a3de661779017c2d3d8738737f0cf85d99095d94d045009c361 |
|
MD5 | 6fcf246543e66b156ee35913f8a9fbc0 |
|
BLAKE2b-256 | 17da65f3d620b6d440b80d74b1d5ed277d31c9f1af3c63afd865642fbe9050b2 |
File details
Details for the file aiotuyalan-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: aiotuyalan-0.0.3-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df902c5301bf7dbc742712d11beea4b694ff1a17447cdd36af26d1712d977c1d |
|
MD5 | d23b4a80d2215018829abec9fadb32c3 |
|
BLAKE2b-256 | 2cafac30bd13ff9ed34315011a28058562a635c378c52424a41fe1e1cdc22a0b |