Pull power and state data from Tuya WiFi smart devices
Project description
TuyaPower - PyPi Module
Author: Jason A. Cox https://github.com/jasonacox/tuyapower
Description
Python module to pull power and state data from Tuya WiFi smart devices. Tested on RaspberryPi, Linux, Windows 10 and MacOS.
Preparation
This module requires: pycrypto, pytuya, Crypto and pyaes.
sudo apt-get install python-crypto python-pip
pip install pycrypto
pip install pytuya
pip install Crypto
pip install pyaes
Functions
- deviceInfo - Poll device and return on, w, mA, V and err data.
(on, w, mA, V, err) = tuyapower.deviceInfo(PLUGID, PLUGIP, PLUGKEY, PLUGVERS)
- devicePrint - Poll device and print formatted output to stdout.
tuyapower.devicePrint(PLUGID, PLUGIP, PLUGKEY, PLUGVERS)
- deviceJSON - Poll device and return JSON formatted details.
dataJSON = tuyapower.deviceJSON(PLUGID, PLUGIP, PLUGKEY, PLUGVERS)
- deviceScan(verbose) - Scans network for smart plug devices and return dictionary of devices and power data.
devices = tuyapower.deviceScan(verbose)
- scan() - This is a shortcut for deviceScan(True)
Example Usage:
# Poll a Single Devices
import tuyapower
PLUGID = '01234567891234567890'
PLUGIP = '10.0.1.99'
PLUGKEY = '0123456789abcdef'
PLUGVERS = '3.1'
(on, w, mA, V, err) = tuyapower.deviceInfo(PLUGID,PLUGIP,PLUGKEY,PLUGVERS)
# Scan Network for All Devices
# To see output on stdout set verbose True
tuyapower.deviceScan(True)
Scanning on UDP port 6666 for devices...
FOUND Device [Valid payload]: 10.0.1.100
ID = 01234567891234567890, Key = 0123456789abcdef, Version = 3.1
Stats: on=True, W=6.0, mA=54.0, V=121.1 [OK]
FOUND Device [Valid payload]: 10.0.1.200
ID = 01234567891234567891, Key = 0123456789abcdea, Version = 3.1
Stats: on=True, W=-99, mA=-99, V=-99 [Power data unavailable]
Scan Complete! Found 2 devices.
# Scan the network and unpack the response
devices = tuyapower.deviceScan()
for ip in devices:
id = devices[ip]['gwId']
key = devices[ip]['productKey']
vers = devices[ip]['version']
(on, w, mA, V, err) = deviceInfo(id, ip, key, vers)
print("Device at %s: ID %s, state=%s, W=%s, mA=%s, V=%s [%s]"%(ip,id,on,w,mA,V,err))
Parameters:
- PLUGID = Device ID e.g. 01234567891234567890
- PLUGIP = Device IP Address e.g. 10.0.1.99
- PLUGKEY = Device Key e.g. 0123456789abcdef
- PLUGVERS = Version of Protocol 3.1 or 3.3
Response Data:
- on = Switch state - true or false
- w = Wattage
- mA = milliamps
- V = Voltage
- err = Error message or OK
Note: If error occurs, on will be set to false, w, mA and V will be set to -99.0.
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for tuyapower-0.0.10-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f694497fc64364bac2cd61fa756ac4d4ab23aac03cbdfa6e95b1d4311dcb969 |
|
MD5 | 3b455f299038ed55f880f58586834044 |
|
BLAKE2b-256 | ae28419bfc0c0ccd720b6ef5ee9cc79b16af81e75b19662c1378ac2a2fe5587d |