cwwilson08 / tuyapi

An easy-to-use API for devices that use Tuya's cloud services

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TuyAPI 🌧 πŸ”Œ

XO code style Build Status

A library for communicating with devices that use the Tuya cloud network. These devices are branded under many different names, but if port 6668 is open on your device chances are this library will work with it. Currently only supports smart plugs, but it should be fairly trivial to add other types of devices.

Installation

npm install codetheweb/tuyapi

Basic Usage

const TuyaDevice = require('tuyapi');

let tuya = new TuyaDevice({
  id: 'xxxxxxxxxxxxxxxxxxxx',
  key: 'xxxxxxxxxxxxxxxx'});

tuya.resolveIds().then(() => {  
  tuya.get().then(status => {
    console.log('Status: ' + status);

    tuya.set({set: !status}).then(result => {
      console.log('Result of setting status to ' + !status + ': ' + result);

      tuya.get().then(status => {
        console.log('New status: ' + status);
        return;
      });
    });
  });
});

This should report the current status, set the device to the opposite of what it currently is, then report the changed status.

See the setup instructions for how to find the needed parameters.

πŸ““ Docs

See the docs.

IMPORTANT: Only one TCP connection can be in use with a device at once. If testing this, do not have the app on your phone open.

TODO

  1. Add automated tests
  2. Document details of protocol
  3. Retry when ECONNRESET is thrown

Contributors

Related

forthebadge forthebadge

About

An easy-to-use API for devices that use Tuya's cloud services

License:MIT License


Languages

Language:JavaScript 100.0%