Skip to content

Integrate Thingsboard backend to Javascript front-end frameworks and NodeJS

Notifications You must be signed in to change notification settings

acte-technology/thingsboard-js-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thingsboard Javascript SDK

Thingsboard Javascript SDK

Dev version, work in progress.

Installation

npm install thingsboard-js-sdk

Examples

  • Reactjs, checkout docs/reactjs.js component.

Methods

  • connect
  • disconnect
  • subscribe (websocket)
  • getTenantDevices
  • getKeys (timeseries & attributes)
  • deleteEntityKeys (timeseries & attributes)
  • getAttributesByScope
  • getTimeseries

Import client class

import tbClient from 'thingsboard-js-sdk';
const client = new tbClient(config);

Connect to public device

const client = new tbClient({
  host: 'localhost',
  publicId: 'xxx-xxx-xxx-xxx' // dashboard public id
});

const connect = async () => {

  const token = await client.connect(true); //true for public login

}

Connect with user/password

const client = new tbClient({
  host: 'localhost',
  username: 'username',
  password: 'password'
});

const connect = async () => {

  const token = await client.connect();

}

Get Tenant Devices

must be logged as a tenant

const params = {
  pageSize: 100,
  page: 0,
  sortProperty: 'name',
  sortOrder: 'ASC'
}
//...
let devices = await client.getTenantDevices(params, callback)

Get Keys

const params = {
  entityId: 'xxx-xxx-xxx',
  scope: 'timeseries', //timeseries | client | shared | server
}
//...
let keys = await client.getKeys(params, callback)

Get Attributes By Scope

const params = {
  entityId: 'xxx-xxx-xxx',
  scope: 'CLIENT_SCOPE', // CLIENT_SCOPE | SHARED_SCOPE | SERVER_SCOPE
  keys: ['temperature', 'humidity']
}
//...
let attrs = await client.getAttributesByScope(params, callback)

Delete keys

const params = {
  entityId: 'xxx-xxx-xxx',
  keys: ['temperature', 'humidity'],
  olderThan: Date.now()-3600, //delete older than 1 hour
  scope: 'timeseries' // timeseries, client, shared, server
}
//...
let response = await client.deleteEntityKeys(params, callback)

Get timeseries

const now = Date.now();

const params = {
  entityId: 'xxx-xxx-xxx',
  keys: ['temperature', 'humidity']
  limit: 500,
  agg: 'AVG',
  interval: 60000,
  startTs: now-3600000,
  endTs: now,
  useStrictDataTypes: true
}
//...
let timeseries = await client.getTimeseries(params, callback)

WSS Websocket subscribe

const params = {
  entityId: 'xxx-xxx-xxx',
  cmdId: 10 //websocket id
}
//...
let keys = await client.subscribe(params, callback)

Issues

Github: https://github.com/acte-technology/thingsboard-js-sdk/issues

Working examples:

About

Integrate Thingsboard backend to Javascript front-end frameworks and NodeJS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published