Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A node.js module to interface with the Quirky Wink API
branch: master

0.2.0

latest commit d6160db5ac
Marshall T. Rose mrose17 authored
Failed to load latest commit information.
.gitignore .gitignore
LICENSE Initial commit
README.md 0.2.0
package.json 0.2.0
test.js better display
winkapi.js 0.2.0

README.md

node-winkapi

A node.js module to interface with the Quirky Wink API.

Before Starting

You will need OAuth tokens and a Wink account:

  • To get the OAuth tokens:

    • Make sure you have a Quirky account; if not, go to quirky.com and click on SIGN UP (in the upper right-hand corner).

    • Send an email to questions@quirky.com and request access to the Wink API.

  • To get a Wink account:

    • Attach a Wink-capable device to your network.

    • Launch either the iOS or Android app on your smart phone/tablet.

    • Follow the directions to create an account.

Install

npm install winkapi

API

Load

var WinkAPI = require('node-winkapi');

Login to cloud

var clientID     = '...'
  , clientSecret = '...'
  , userName     = '...'
  , passPhrase   = '...'
  , winkapi
  ;

winkapi = new WinkAPI.WinkAPI({ clientID     : clientID
                              , clientSecret : clientSecret }).login(userName, passPhrase, function(err) {
  if (!!err) return console.log('login error: ' + err.message);

  // otherwise, good to go!
}).on('error', function(err) {
  console.log('background error: ' + err.message);
});

Get/Set user information

winkapi.getUser(function(err, user) {
  if (!!err) return console.log('getUser: ' + err.message);

  // inspect user{}
});

winkapi.setUser({ name: '...' }, function(err, user) {
  if (!!err) return console.log('setUser: ' + err.message);

  // inspect user{}
});

Get/Set device information

winkapi.getDevices(function(err, devices) {
  if (!!err) return console.log('getDevices: ' + err.message);

  // inspect devices[{}]
});

winkapi.getDevice(device, function(err, device) {
  if (!!err) return console.log('getDevice: ' + err.message);

  // inspect device{}
});

winkapi.setDevice(device, { name: ... }, function(err, device) {
  if (!!err) return console.log('setDevice: ' + err.message);

  // inspect device{}
});

Get icon information

winkapi.getIcons(function(err, icons) {
  if (!!err) return console.log('getIcons: ' + err.message);

  // inspect icons[{}]
});

Get channel information

winkapi.getChannels(function(err, channels) {
  if (!!err) return console.log('getChannels: ' + err.message);

  // inspect channels[{}]
});

winkapi.getDialTemplates(function(err, dialTemplates) {
  if (!!err) return console.log('getDialTemplates: ' + err.message);

  // inspect dialTemplates[{}]
});

Get/Set linked service information

winkapi.getServices(function(err, services) {
  if (!!err) return console.log('getServices: ' + err.message);

  // inspect services[{}]
});

winkapi.newService({ service: '...', account: '...' }, function(err, service) {
  if (!!err) return console.log('setService: ' + err.message);

  // inspect service{}
});

Get/Set trigger information

winkapi.getTrigger(id, function(err, trigger) {
  if (!!err) return console.log('getTrigger: ' + err.message);

  // inspect trigger{}
});

winkapi.setTrigger('1', { enabled: true }, function(err, trigger) {
  if (!!err) return console.log('setTrigger: ' + err.message);

  // inspect trigger{}
});

Get/Set dial-related information

winkapi.getDialTemplates(function(err, dialTemplates) {
  if (!!err) return console.log('getDialTemplates: ' + err.message);

  // inspect dialTemplates[{}]
});

winkapi.setDial(dial, { enabled: true }, function(err, dial) {
  if (!!err) return console.log('setDial: ' + err.message);

  // inspect dial{}
});

winkapi.setDialValue(dial, value, callback) {
  if (!!err) return console.log('setDialValue: ' + err.message);

  // inspect dial{}
}

winkapi.setDialLabels(dial, mainLabel, secondaryLabel, callback) {
  if (!!err) return console.log('setDialLabels: ' + err.message);

  // inspect dial{}
}

Set outlet-related information

winkapi.setOutlet(outlet, { powered: true }, function(err, outlet) {
  if (!!err) return console.log('setOutlet: ' + err.message);

  // inspect outlet{}
});

For the Future

  • Sharing
  • Alarms
  • Schedules

Finally

Enjoy!

Something went wrong with that request. Please try again.