JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 61
  • Score
    100M100P100Q76145F
  • License MIT

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

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

    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