tplink-smarthome-api

5.0.0last stable release 1 year ago
Complexity Score
Medium
Open Issues
14
Dependent Projects
19
Weekly Downloadsglobal
426

License

  • MIT
    • Yesattribution
    • Permissivelinking
    • Permissivedistribution
    • Permissivemodification
    • Nopatent grant
    • Yesprivate use
    • Permissivesublicensing
    • Notrademark grant

Downloads

Readme

tplink-smarthome-api

TP-Link Smarthome API

Changelog

Known Supported Devices

Model Type HS100, HS103, HS105, HS107, HS110,
HS200, HS210, HS220, HS300, KP303, KP400
ES20M, EP40, …etc. Plug LB100, LB110, LB120, LB130, LB200, LB230, KL50, KL120, KL125
…etc. Bulb KL430
…etc. Bulb (light strip)

Many other TP-Link Plug and Bulb models may work as well. Note that Tapo devices are not supported.

Related Projects

  • TP-Link Smarthome Device Simulator - Useful for automated testing
  • TP-Link Smarthome Crypto
  • TP-Link Smarthome Homebridge Plugin

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

Dependencies

Loading dependencies...

CVE IssuesActive
0
Scorecards Score
4.40
Test Coverage
84.00%
Follows Semver
Yes
Github Stars
1,019
Dependenciestotal
56
DependenciesOutdated
24
DependenciesDeprecated
2
Threat Modelling
No
Repo Audits
No

Learn how to distribute tplink-smarthome-api in your own private NPM registry

npm config set registry  https://npm.cloudsmith.com/owner/repo
Processing...
Done
npm install tplink-smarthome-api
Processing...
Done

23 Releases

NPM on Cloudsmith

Getting started with NPM on Cloudsmith is fast and easy.