react-native-tplink

    0.3.9 • Public • Published

    hs100-api

    NPM Version js-semistandard-style

    TPLink HS100/HS110 WiFi Smart Plug API

    Example

    const Hs100Api = require('hs100-api');
     
    const client = new Hs100Api.Client();
    const plug = client.getPlug({host: '10.0.1.2'});
    plug.getInfo().then(console.log);
    plug.setPowerState(true);
     
    // Look for plugs, log to console, and turn them on
    client.startDiscovery().on('plug-new', (plug) => {
      plug.getInfo().then(console.log);
      plug.setPowerState(true);
    });

    API

    The API is currently not stable and there may be breaking changes.

    Client

    new Client(options)

    Returns a Client object.

    options: {
      [address]
      [, port]
      [, broadcast = '255.255.255.255']
      [, discoveryInterval = 30000]
      [, offlineTolerance = 3]
      [, debug = false]
    }

    startDiscovery([plugs])

    Sends a discovery packet to the broadcast address every discoveryInterval. An array of addresses can be specified to query directly. Emits plug-new when a response from a new plug is received and plug-online for known plugs. If a known plug has not been heard from after offlineTolerance number of discovery attempts then emits plug-offline.

    stopDiscovery

    Stops discovery process.

    getPlug(options)

    Returns a Plug object.

    options: { host [, port = 9999] [, timeout = 0] }

    Plug

    getInfo (promise)

    Get all plug info. Same as calling all of getSysInfo, getCloudInfo, getConsumption, getScheduleNextAction.

    getSysInfo (promise)

    Get general plug info.

    getCloudInfo (promise)

    Get TP-Link Cloud information.

    getConsumption (promise)

    Get power consumption data for HS110 plugs.

    getPowerState (promise)

    Returns true if plug is on.

    setPowerState(value) (promise)

    Turns the plug on or off.

    setName(value) (promise)

    Change plug's alias.

    getScheduleNextAction (promise)

    getScheduleRules (promise)

    getAwayRules (promise)

    getTimerRules (promise)

    getTime (promise)

    getTimeZone (promise)

    getScanInfo([refresh = false] [, timeout = 17]) (promise)

    Get list of networks.

    getModel (promise)

    Credits

    Thanks to George Georgovassilis and Thomas Baust for figuring out the HS1XX encryption. https://georgovassilis.blogspot.com/2016/05/controlling-tp-link-hs100-wi-fi-smart.html

    Some design cues for Client were based on https://github.com/MariusRumpf/node-lifx/

    Install

    npm i react-native-tplink

    DownloadsWeekly Downloads

    9

    Version

    0.3.9

    License

    MIT

    Last publish

    Collaborators

    • netbeast.staff