Skip to content

TheThingSystem/node-winkapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published