Standalone
- install modules with
npm install
- create a
.env
file (see.env.example
) - run tests with
npm test
Module
- install NPM package
npm install @shellcatt/tuya-smartlife-api
- import ESM
See test.js
import { TuyaSmartLifeClient } from "tuya-smartlife-api";
const client = new TuyaSmartLifeClient();
try {
await client.init('jondoe@example.co.uk', 'password', '44');
await client.discoverDevices();
tDevices = client.getAllDevices();
console.log(tDevices);
} catch (e) {
console.error('Failed because', e);
}
- port and optimize TuyaPy
- implement integration tests
- implement pure CLI (see Examples)
- list devices (short / long format)
- control a device's state
- control a device's custom attributes
- use Configstore for credentials & device cache (not
session.json
) - implement unit tests
- implement classes for other IoT devices (climate, fan, lock, etc.)
-
implement TUI (blessed-contrib)
# 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
Inspired by TuyaPy (backend) and SmartLife (web) interfaces to Tuya's SmartAtHome for IoT smart device control.