tp-link-tapo-connect
TypeScript icon, indicating that this package has built-in type declarations

2.0.4 • Public • Published

TP-Link Tapo Connect

Unofficial Node.js library for connecting to TP-Link Tapo devices. Currently limited to the:

  • P100, P105, P110, P115 smart plugs
  • L510E, L530E smart bulbs
  • L900-10 smart strip
  • IP cameras like C320WS

Installation Instructions

  npm install tp-link-tapo-connect

Usage

Discovery

In order to discover your devices it is advisable to login to your TP-Link account and call the listDevices function. To do this:

const cloudApi = await cloudLogin(email, password);
    
const devices = await cloudApi.listDevicesByType('SMART.TAPOPLUG');

Once you have determined which device you wish to use. You can enquire of its current state using:

const device = await loginDevice(email, password, devices[0]); // Performs a mac lookup to determine local IP address
// OR
const device = await loginDeviceByIp(email, password, deviceIp); // If you know your local device IP address
    
const getDeviceInfoResponse = await device.getDeviceInfo();
console.log(getDeviceInfoResponse);

To change the device state e.g. turn it on or off use:

await device.turnOn();
await device.setBrightness(75); // Sets brightness to 75% for smart bulbs only
await device.turnOff();

Changing the bulb colour (Colour smart bulbs only):

await device.turnOn();
await device.setColour('white'); // Sets the colour for colour smart bulbs only
await device.setColour('#FF00FF'); // Sets the colour for colour smart bulbs only using a hex value
await device.turnOff();

Available Preset Colours

white
warmwhite
daylightwhite
blue
red
green
yellow

Load videos from tapo-care cloud

const cloudVideos = await cloudApi.tapoCareCloudVideos(deviceId); //deviceId from listDevicesByType 

Migrating from version 1 to 2

Version 2 favours returning a device object that has the necessary functions to manipulate the device rather than passing the device/cloud token.

e.g.

const deviceToken = await loginDeviceByIp(email, password, deviceIp);
await turnOn(deviceToken);

is now

const device = await loginDeviceByIp(email, password, deviceIp);
await device.turnOn();

Credits

Credit to this API go to:

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.4
    26
    • latest

Version History

Package Sidebar

Install

npm i tp-link-tapo-connect

Weekly Downloads

131

Version

2.0.4

License

ISC

Unpacked Size

158 kB

Total Files

73

Last publish

Collaborators

  • pdickinson