konsumer / kasa_control

use kasa-cloud to hit your TPLink bulbs in nodejs
10 stars 3 forks source link

kasa-control

This will let you use kasa-cloud to hit your TPLink bulbs in nodejs.

If you'd like to hit them directly, on your local network, use tplink-lightbulb. This library is for situations where you want to use a username/password (from tplink cloud.) It will allow you to acces them remotely.

installation

npm i kasa_control

example usage

const KasaControl = require('kasa_control')
const kasa = new KasaControl()

const main = async () => {
  await kasa.login('email', 'password')
  const devices = await kasa.getDevices()

  // turn off first device
  await kasa.power(devices[0].deviceId, false)
}
main()

api

sendPromise

Send a message to a lightbulb (for RAW JS message objects)

getDevicesPromise

Get a list of devices for your Kasa account

infoPromise

Get info about a device

powerPromise

Set power-state of lightbulb

send ⇒ Promise

Send a message to a lightbulb (for RAW JS message objects)

Returns: Promise - Resolves with answer

Param Type Description
deviceId string The deviceId of the device in your kasa app
msg Object Message to send to bulb

Example

kasa.send('80126E22B048C76F341BEED1A3EA8E77177F3484', {
  'smartlife.iot.smartbulb.lightingservice': {
    'transition_light_state': {
      'on_off': 1,
      'transition_period': 0
    }
})
  .then(response => {
    console.log(response)
  })
  .catch(e => console.error(e))

getDevices ⇒ Promise

Get a list of devices for your Kasa account

Returns: Promise - Resolves to an array of device-objects Example

kasa.getDevices()
  .then(devices => {
    console.log(devices)
  })
  .catch(e => console.error(e))

info ⇒ Promise

Get info about a device

Returns: Promise - Resolves to an info-pbject about your device example

kasa.info('80126E22B048C76F341BEED1A3EA8E77177F3484')
  .then(info => {
    console.log(info)
  })
  .catch(e => console.error(e))
Param Type Description
deviceId string The deviceId of the device in your kasa app

power ⇒ Promise

Set power-state of lightbulb

Returns: Promise - Resolves to output of command

Param Type Description
deviceId string The deviceId of the device in your kasa app
powerState Boolean On or off
transition Number Transition to new state in this time
options Object Object containing mode, hue, saturation, color_temp, brightness

Example

// turn a light on
kasa.power('80126E22B048C76F341BEED1A3EA8E77177F3484', true)
  .then(status => {
    console.log(status)
  })
  .catch(err => console.error(err))

thanks

Thanks to itnerd for these 3 articles: