Skip to content

shellcatt/tuya-smartlife-api-deno

Repository files navigation

Tuya Smart Life API + CLI

Unit Tests Releases

Usage requirements

Module
  • install package locally
deno install jsr:@shellcatt/tuya-smartlife-api
  • import ESM
import { TuyaSmartLifeClient } from "tuya-smartlife-api";
const client = new TuyaSmartLifeClient();
try {
	await client.init('jondoe@example.co.uk', 'password', 'eu');
	await client.discoverDevices();

	const tDevices = client.getAllDevices();
	console.log(tDevices);

	const myFirstBulb = await client.getDevicesByType('light')[0];
	await myFirstBulb.turnOn();

} catch (e) {
	console.error('Failed because', e);
}
Standalone
  • install package globally
deno install -g -n tuyacli jsr:@shellcat/tuya-smartlife-api 
  • verify installation
tuyacli
Usage: tuyacli [options] [command]

Options:
  -V, --version                   output the version number
  -h, --help                      display help for command

Commands:
  auth                            login with SmartLife
  test                            live test a selected device's functions set
  list [options]                  list devices and their state / attributes
  control [options] <name-or-id>  control a device's state
  help                            output usage information

Examples

# List all devices
node cli list [--format={short|long}]

# Turn device ID on / off
node cli control <ID|Name> --state [1|on]
node cli control <ID|Name> --state [0|off]
node cli control <ID|Name> --toggle

# Set light brightness, color temp & color 
node cli control <ID|Name> --brigntness 30 
node cli control <ID|Name> --temperature 3500 # set warm temp
node cli control <ID|Name> --hsv 78.34,1,100 # HSV chill green
node cli control <ID|Name> --hsv 324.77,1,42 # HSV chill purple
node cli control <ID|Name> --rgb 90,30,115 # RGB something

TODO Direction

  • ❌ migrate to TypeScript
  • ❌ add JSDoc
  • ✅ port pipelines
  • ✅ port unit tests
  • ✅ port and optimize tuya-smartlife-api-node

Credits License

Inspired by TuyaPy (backend) and SmartLife (web) interfaces to Tuya's SmartAtHome for IoT smart device control.

See also