@samtec-ash/resindevicesdk

Enables device to communicate with Resin Supervisor

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
Minified + gzip package size for @samtec-ash/resindevicesdk in KB

Readme

Resin Device SDK

Overview

Enables device application to interact with Resin Supervisor API in Node.js.
This is essentially a wrapper for Resin's Device Supervisor Agent HTTP API.

Supports running commands both locally from the device or remote. For remote, address will be https://api.resin.io/supervisor.

Class ResinDeviceSDK

Available methods:

  • setSupervisorSettings
  • getDeviceOnline
  • getAppStatus (V1)
  • getDeviceStatus (V1)
  • performBlink (V1)
  • performUpdate (V1)
  • performReboot (V1)
  • performShutdown (V1)
  • performPurgeData (V1)
  • performAppStart (V1)
  • performAppStop (V1)
  • performRestart (V1)
  • performAppPurgeData (V2)
  • getServiceState (V2)
  • getAppState (V2)
  • performRestartService (V2)
  • performAppRestart (V2)
  • performStopService (V2)
  • performStartService (V2)

Usage

Installation

# Add package to project
yarn add @samtec-ash/resindevicesdk

Example:

import { ResinDeviceSDK } from '@samtec-ash/resindevicesdk';

async function deviceTest(device) {
  const isOnline = await device.getDeviceOnline();
  if (isOnline) {
    const deviceStatus = await device.getDeviceStatus();
    const { status } = deviceStatus;
    console.log(`App status is ${status}.`);
    await device.performBlink();
    console.log(`LED on board will blink for 15 sec.`);
  }  
}

const config = {
  address: process.env.RESIN_SUPERVISOR_ADDRESS,
  apiKey: null,
  appId: process.env.RESIN_APP_ID,
  authToken: process.env.RESIN_SUPERVISOR_AUTH_TOKEN,
  deviceUUID: process.env.RESIN_DEVICE_UUID
};
const device = new ResinDeviceSDK(config);  
deviceTest(device).then(() => {
  console.log('Success');
}).catch((err) => {
  console.log(`Received following error ${err}`);
});

Development

Building

yarn run prepublish

API

The autogenerated API can be accessed in following mediums:

Publishing

New versions are published to npmjs.com. BitBucket Pipelines is used to build, test, stage, & deploy. Refer to the pipeline configuration.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Adam Page

License

This project is licensed under the MIT License - see the LICENSE.md file for details

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.