Skip to content

A node.js client library for using the Wio Link API.

License

Notifications You must be signed in to change notification settings

tejashah88/node-wio-link

Repository files navigation

node-wio-link

NPM Version

A node.js client library for using the Wio Link API.

Table Of Contents

Documentation

Official Documentation: http://seeed-studio.github.io/Wio_Link/

Built-In Grove APIs: https://github.com/Seeed-Studio/Wio_Link/wiki/Built-in-Grove-APIs

All methods return a promise, which either resolves to the data received, or rejects with an error.

User Management

// Creates a new user account.
wioClient.user.create(String email, String password)

// Changes the password of an existing account.
wioClient.user.changePassword(String userToken, String newPassword)

// Retrieve the password of an existing account.
wioClient.user.retrievePassword(String email)

// Log in to the server with the given credentials.
wioClient.user.login(String email, String password)

Node Management

// Creates a new node.
wioClient.nodeManagement.create(String userToken, String name, optional String boardType)

// List the nodes associated with the user.
wioClient.nodeManagement.list(String userToken)

// Rename an existing node.
wioClient.nodeManagement.rename(String userToken, String newName, String nodeSN)

// Delete an existing node.
wioClient.nodeManagement.delete(String userToken, String nodeSN)

Grove Driver

// Retrieve all of the grove drivers' information.
wioClient.groveDriver.info(String userToken)

// Retrieve the status of last driver scanning.
wioClient.groveDriver.scanStatus(String userToken)

Boards/Platform

// List all of the supported boards.
wioClient.boards.list(String userToken)

Single Node

// Lists all of the available resources on a node.
wioClient.node.wellKnown(String nodeToken)

// Read the property of a Grove module.
wioClient.node.read(String nodeToken, String groveInstName, String property, String...args)

// Write to a Grove module.
wioClient.node.write(String nodeToken, String groveInstName, String PropertyOrMethodOrAction, String...args)

// Put the node to sleep.
wioClient.node.sleep(String nodeToken, Number sleepAmount)

// Retrieve the API reference page from the node.
wioClient.node.resources(String nodeToken)

// Trigger the OTA process for the node.
wioClient.node.otaTrigger(String nodeToken, Object data, optional Number buildPhase)

// Track the OTA status of the node.
wioClient.node.otaStatus(String nodeToken)

// Get the configuration of the node.
wioClient.node.config(String nodeToken)

// Change the data exchange server for the node.
wioClient.node.changeDataExchangeServer(String nodeToken, String address, String dataxurl)

Coding on the fly

// Upload a user's logic block to a node.
wioClient.cotf.uploadULB(String nodeToken, Object data)

// Download a user's logic block from a node.
wioClient.cotf.downloadULB(String nodeToken)

// Get the value of a variable on the node.
wioClient.cotf.getVariable(String nodeToken, String varName)

// Set the value of a variable on the node.
wioClient.cotf.setVariable(String nodeToken, String varName, String varValue)

// Call a function on the node.
wioClient.cotf.callFunction(String nodeToken, String funcName, String arg)

Custom API calls

In case there's a few APIs that aren't covered in this library, a bunch of custom functions are available to use. They will return the response received from making the call.

// Perform a custom HEAD request
wioClient.custom.head(String url)

// Perform a custom GET request
wioClient.custom.get(String url, Object parameters)

// Perform a custom POST request
wioClient.custom.post(String url, Object parameters)

// Perform a custom PUT request
wioClient.custom.put(String url, Object parameters)

// Perform a custom DELETE request
wioClient.custom.delete(String url)

Examples

Using Promises

// serverLocation can be 'us' or 'cn'
const wioClient = require('node-wio-link')(serverLocation);

wioClient.node.read(nodeToken, 'GroveAirqualityA0', 'quality')
  .then(data => console.log(data))
  .catch(error => console.log(error));

Using Async/Await

// serverLocation can be 'us' or 'cn'
const wioClient = require('node-wio-link')(serverLocation);

(async function() {
  try {
    const airQuality = await wioClient.node.read(nodeToken, 'GroveAirqualityA0', 'quality');
    console.log(airQuality);
  } catch (error) {
    console.log(error);
  }
})();

About

A node.js client library for using the Wio Link API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published