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.
npm i kasa_control
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()
Promise
Send a message to a lightbulb (for RAW JS message objects)
Promise
Get a list of devices for your Kasa account
Promise
Get info about a device
Promise
Set power-state of lightbulb
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))
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))
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 |
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 to itnerd for these 3 articles: