npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-tplink

v1.0.1

Published

A collection of Node-RED nodes for TP-Link smart-home devices.

Downloads

386

Readme

node-red-contrib-tplink

TP-Link Smart Home Node-Red Nodes

GitHub release NPM Version GitHub last commit

Node version GitHub repo size in bytes

Github All Releases

npm GitHub contributors contributions welcome

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 device
  • false | off - Turn off the device
  • toggle - Switch the power state of the device.
  • Or as an object, all properties optional:
    • state: true | on | false | off - Set device on or off
    • brightness: [1-100] - Set brightness, if supported
    • temperature: [2700-6500, 0] - Set brightness (in kelvin), or zero to leave temperature mode and return to previous hsb value if supported
    • hsb: {hue, saturation, brightness} - Set the color, if supported
    • led: 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.

https://nodei.co/npm/node-red-contrib-tplink.png?downloads=true&downloadRank=true&stars=true