Have ideas to improve npm?Join in the discussion! »

    tplink-smarthome-api
    TypeScript icon, indicating that this package has built-in type declarations

    3.3.0 • Public • Published

    tplink-smarthome-api

    NPM Version Build Status codecov

    TP-Link Smarthome API

    Changelog

    Known Supported Devices

    Model Type
    HS100, HS103, HS105, HS107, HS110,
    HS200, HS210, HS220, HS300, KP303, KP400
    ...etc.
    Plug
    LB100, LB110, LB120, LB130, LB200, LB230, KL120
    ...etc.
    Bulb

    Most other TP-Link Plug and Bulb models may work as well.

    Related Projects

    Examples

    See more examples.

    const { Client } = require('tplink-smarthome-api');
    
    const client = new Client();
    const plug = client.getDevice({ host: '10.0.1.2' }).then((device) => {
      device.getSysInfo().then(console.log);
      device.setPowerState(true);
    });
    
    // Look for devices, log to console, and turn them on
    client.startDiscovery().on('device-new', (device) => {
      device.getSysInfo().then(console.log);
      device.setPowerState(true);
    });

    CLI

    Install the command line utility with npm install -g tplink-smarthome-api. Run tplink-smarthome-api --help for help.

    API

    API docs can be found here.

    For functions that send commands, the last argument is SendOptions where you can set the transport ('tcp','udp') and timeout, etc.

    Functions that take more than 3 arguments are passed a single options object as the first argument (and if its a network command, SendOptions as the second.)

    Credits

    Thanks to George Georgovassilis and Thomas Baust for figuring out the HS1XX encryption.

    Some design cues for Client based on node-lifx

    Install

    npm i tplink-smarthome-api

    DownloadsWeekly Downloads

    779

    Version

    3.3.0

    License

    MIT

    Unpacked Size

    380 kB

    Total Files

    104

    Last publish

    Collaborators

    • avatar