Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-red-contrib-tplink) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-red-contrib-tplink
TP-Link Smart Home Node-Red Nodes
This is a Node-RED node that allows you to control smart plugs, switches, and bulbs from the TP-Link Kasa Smart ecosystem.
Under the hood, this uses TP-Link Smart Home API.
Installation
Run the following command in the root directory of your Node-RED install
$ npm install node-red-contrib-tplink
or you can use the Palette Manager in Node-RED.
Parameters
Name
- Type in the name of the host manually or keep the default device name
Device IP
- Type in the Device IP address manually or press the button to retrieve all locally available plug devices. To specify a plug in a multi-plug device, append a /
followed by the plug number (zero-indexed). Use is optional. Alternatively, or additionally, an input message can include msg.topic
with a device IP (and optional plug number). Examples: 192.168.1.101
or 192.168.1.101/3
Connection poll interval
- Interval that is used to poll availability of devices (>500ms / Recommended 5000-10000ms). Set to 0
to disable availability checks (in which case, OnlineEvents
will not trigger, even if started).
Event poll interval
- Interval that is used to poll active devices for events (>500ms / Recommended 1000-3000ms). Set to 0
to disable event polling (in which case, all events except OnlineEvents will not trigger, even if started).
Output payload
- Types are info
, none
, string
, number
, boolean
, JSON
, and timestamp
. Default type is info
with a value of getInfo
. If set to info
, the selected payload command will be fired after completion, and the payload set accordingly. Output payload is ignored if the node input is a command or an event, in which case see below for more information
Debug
- If enabled, will output device information to the flow editor debug tab.
Inputs
Send in a message to control, command, or start/stop events.
topic
- Optional. The device IP (and optional plug). Any message without a topic will use the device configured via the parameters. If no topic is included, and no device is configured, the message will be ignored.payload
- Required. Either a control, command, or event action. See below for details of each.
Controls
Control a device by setting its properties.
string | Object
true
|on
- Turn on the devicefalse
|off
- Turn off the devicetoggle
- Switch the power state of the device.- Or as an object, all properties optional:
state: true
|on
|false
|off
- Set device on or offbrightness: [1-100]
- Set brightness, if supportedtemperature: [2700-6500, 0]
- Set brightness (in kelvin), or zero to leave temperature mode and return to previous hsb value if supportedhsb: {hue, saturation, brightness}
- Set the color, if supportedled: true
|false
- Turn the LED on or off, if supported
Commands
string
getInfo
- Fetch the device information.getCloudInfo
- Fetch the device information from the cloud.getQuickInfo
- Fetch most popular proprieties, such as username, device consumption, mode, lighting state, and many more. Supports multi-plug.getMeterInfo
- Fetch the current device consumption. Supports multi-plug.eraseStats
- Clear all the meter statistics. Supports multi-plug.
Events
string | array | Object
startMeterEvents
/stopMeterEvents
- Subscribe to meter information events. Event emits on event polling interval.startInfoEvents
/stopInfoEvents
- Subscribe to information events. Event emits on event polling interval.startPowerEvents
/stopPowerEvents
- Subscribe to power on/off events. Event emits on device/plug change.startPowerUpdateEvents
/stopPowerUpdateEvents
- Subscribe to power on/off events. Event emits on event polling interval.startInUseEvents
/stopInUseEvents
- Subscribe to device usage events. Event emits on device/plug change.startInUseUpdateEvents
/stopInUseUpdateEvents
- Subscribe to device usage events. Event emits on event polling interval.startOnlineEvents
/stopOnlineEvents
- Subscribe to online/offline events. Event emits on poll interval.stopAllEvents
- Unsubscribe all events.
Multiple event actions can be sent at once, either as an array or as a string separated by "|". Alternatively, an array or string can be sent in the events
property of an object.
Examples:
['startMeterEvents', 'stopPowerEvents']
or
{ events: 'startMeterEvents|stopPowerEvents' }
For developers
This repo. is (mainly) coded on Node 10.3.0 with Node-RED 0.18.7 on Windows 10 Home Build 17134.81.
Runs succesfully in a Raspberry Pi 3 Model B+ on standard Raspbian Stretch's Node 0.10.29 and matching Node-RED.