1.8.0 • Published 5 months ago

tplink-lightbulb v1.8.0

Weekly downloads
43
License
MIT
Repository
github
Last release
5 months ago

tplink-lightbulb

Control TP-Link smart-home devices from nodejs

NPM

This will allow you to control TP-Link smart-home devices from nodejs or the command-line.

related

  • If you want to use kasa (allows you to hit your tplink devices, on an external network) have a look at kasa_control.
  • If you'd like to run a GraphQL server to control your lights, see tplink-graphql.
  • If you like to see a demo web-app that uses react & websockets, see tpserver.

supported devices

Not all TP-Link smart-home devices can do all things, here's the support-matrix:

rawdetailsonofftemphexhsbcloudwifijoin
LB100XXXXXXXX
LB120XXXXXXXX
LB130XXXXXXXXXX
HS100XXXXXX
HS105XXXXXX
HS110XXXXXX
HS200XXXXXX
KP100XXXXXX
LB200XXXXXXXX
LB230XXXXXXXXXX
KL110XXXXXX
KL120XXXXXXXX
KL130XXXXXXXXXX

I have LB120, LB130, and HS105, so any testing (and packet-capture) with other devices would be greatly appreciated.

command-line

If you have nodejs installed, you can install it for your system with this:

npm i -g tplink-lightbulb

You can even run it without installing:

npx tplink-lightbulb

If you don't want to install nodejs, or just want the standalone-version, install a release for your system.

Now, you can use it like this:

Usage: tplight <COMMAND>

Commands:
  tplight scan                               Scan for lightbulbs
  tplight on <ip>                            Turn on lightbulb
  tplight off <ip>                           Turn off lightbulb
  tplight bright <ip> <brightness>           Set the brightness of the lightbulb
                                            (for those that support it)
  tplight temp <ip> <color>                  Set the color-temperature of the
                                            lightbulb (for those that support
                                            it)
  tplight hex <ip> <color>                   Set color of lightbulb using hex
                                            color (for those that support it)
  tplight hsb <ip> <hue> <saturation>        Set color of lightbulb using HSB
  <brightness>                              color (for those that support it)
  tplight cloud <ip>                         Get cloud info
  tplight raw <ip> <json>                    Send a raw JSON command
  tplight details <ip>                       Get details about the device
  tplight led <ip> <ledState>                Turn on/off LED indicator
  tplight wifi <ip>                          List available wifi for a particular
                                            device
  tplight join <ip> <SSID> [SECRET]          Configure the device to use these
                                            wifi settings

Options:
  -h, --help     Show help                                             [boolean]
      --version  Show version number                                   [boolean]

Examples:
  tplight scan -h     Get more detailed help with `scan` command
  tplight on -h       Get more detailed help with `on` command
  tplight off -h      Get more detailed help with `off` command
  tplight temp -h     Get more detailed help with `temp` command
  tplight hex -h      Get more detailed help with `hex` command
  tplight hsb -h      Get more detailed help with `hsb` command
  tplight cloud -h    Get more detailed help with `cloud` command
  tplight raw -h      Get more detailed help with `raw` command
  tplight details -h  Get more detailed help with `details` command
  tplight led -h      Get more detailed help with `led` command
  tplight wifi -h     Get more detailed help with `wifi` command
  tplight join -h     Get more detailed help with `join` command

wireshark

If you want to analyze the protocol, you can use the included tplink-smarthome.lua.

Install in the location listed in About Wireshark/Folders/Personal Plugins

I captured packets with tcpdump running on a raspberry pi pretending to be a router. In general, this is a really useful way to capture IOT protocols and mess around with them.

I ssh'd into my pi, ran sudo apt update && sudo apt install tcpdump, then tcpdump -i wlan0 -w lights.pcap

I connected the lights to that network (reset them to factory default by turning the power off/on 5 times, then configure in Kasa app.)

After I did stuff like switch the lights on/off in app, I open the pcap file in wireshark on my desktop.

library

You can install it in your project like this:

npm i -S tplink-lightbulb

Include it in your project like this:

const TPLSmartDevice = require('tplink-lightbulb')

or for ES6:

import TPLSmartDevice from 'tplink-lightbulb'

Read more about the API.

1.8.0

5 months ago

1.7.10

2 years ago

1.7.8

3 years ago

1.7.7

3 years ago

1.7.6

3 years ago

1.7.5

3 years ago

1.7.4

3 years ago

1.7.3

3 years ago

1.7.2

3 years ago

1.7.1

3 years ago

1.7.0

3 years ago

1.6.4

3 years ago

1.6.5

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.4

3 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.6

6 years ago

1.2.5

6 years ago

1.2.4

7 years ago

1.2.3

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.9

7 years ago

1.1.8

7 years ago

1.1.7

7 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.0

7 years ago

1.0.27

7 years ago

1.0.25

7 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.0

7 years ago

1.0.1

7 years ago