Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tejashah88/node-wio-link
A node.js client library for using the Wio Link API.
https://github.com/tejashah88/node-wio-link
client-library grove seeed wio wio-link wio-node
Last synced: about 1 month ago
JSON representation
A node.js client library for using the Wio Link API.
- Host: GitHub
- URL: https://github.com/tejashah88/node-wio-link
- Owner: tejashah88
- License: mit
- Created: 2017-11-20T09:33:12.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-02-11T13:58:42.000Z (almost 3 years ago)
- Last Synced: 2024-11-01T01:42:19.617Z (3 months ago)
- Topics: client-library, grove, seeed, wio, wio-link, wio-node
- Language: JavaScript
- Size: 70.3 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# node-wio-link
[![NPM Version](https://img.shields.io/npm/v/node-wio-link.svg)](https://www.npmjs.com/package/node-wio-link)
A node.js client library for using the Wio Link API.
## Table Of Contents
* [node-wio-link](#node-wio-link)
* [Table Of Contents](#Table-Of-Contents)
* [Documentation](#Documentation)
* [User Management](#User-Management)
* [Node Management](#Node-Management)
* [Grove Driver](#Grove-Driver)
* [Boards/Platform](#BoardsPlatform)
* [Single Node](#Single-Node)
* [Coding on the fly](#Coding-on-the-fly)
* [Custom API calls](#Custom-API-calls)
* [Examples](#Examples)
* [Using Promises](#Using-Promises)
* [Using Async/Await](#Using-AsyncAwait)## 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
```javascript
// 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
```javascript
// 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
```javascript
// 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
```javascript
// List all of the supported boards.
wioClient.boards.list(String userToken)
```### Single Node
```javascript
// 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
```javascript
// 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.```javascript
// 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
```javascript
// 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
```javascript
// 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);
}
})();
```