Wondering what’s next for npm?Check out our public roadmap! »

tplink-smarthome-api

3.1.0 • Public • Published

tplink-smarthome-api

NPM Version Build Status codecov

TP-Link Smarthome API

Changelog

Known Supported Devices

Model Type
HS100, HS103, HS105, HS107, HS110,
HS200, HS210, HS220, HS300, KP303, KP400
...etc.
Plug
LB100, LB110, LB120, LB130, LB200, LB230
...etc.
Bulb

Most other TP-Link Plug and Bulb models may work as well.

Related Projects

Examples

See more examples.

const { Client } = require('tplink-smarthome-api');
 
const client = new Client();
const plug = client.getDevice({ host: '10.0.1.2' }).then((device) => {
  device.getSysInfo().then(console.log);
  device.setPowerState(true);
});
 
// Look for devices, log to console, and turn them on
client.startDiscovery().on('device-new', (device) => {
  device.getSysInfo().then(console.log);
  device.setPowerState(true);
});

CLI

Install the command line utility with npm install -g tplink-smarthome-api. Run tplink-smarthome-api --help for help.

API

API docs can be found here.

For functions that send commands, the last argument is SendOptions where you can set the transport ('tcp','udp') and timeout, etc.

Functions that take more than 3 arguments are passed a single options object as the first argument (and if its a network command, SendOptions as the second.)

Credits

Thanks to George Georgovassilis and Thomas Baust for figuring out the HS1XX encryption.

Some design cues for Client based on node-lifx

Install

npm i tplink-smarthome-api

DownloadsWeekly Downloads

1,329

Version

3.1.0

License

MIT

Unpacked Size

367 kB

Total Files

104

Last publish

Collaborators

  • avatar