JSPM

thunderboard-ble

0.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q24717F
  • License MIT

A library to help reading/writing characteristic and service values with Silicon Labs Thunderboards using JSON configurations for quick and easy setup.

Package Exports

  • thunderboard-ble

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (thunderboard-ble) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

thunderboard-ble

by: Ryan Rutan

A Node.js library to assist with the reading of data from the following Silicon Labs products.

Note: This code was pulled out of a project and converted into an npm module. It still has a lot of refactoring and features to be added to make it complete, but in it's state ... it does a good job at auto-subscribing to Thunderboard data-events for processing. Pull requests and feedback are always welcome; however, time to maintain this library is limited ... so patience is appreciated. So hope you enjoy. =)

Install

npm install thunderboard-ble --save

Usage

Below is an example use of this library.

  • config - JSON map of ble devices by MAC address.
  • dataCallback - Function to handle callbacks as defined by readIntervals in the config
  • normalizeData (optional)- [true|false (default)] Used to interpret the raw data values and convert them to clean measurement values.
    var config = {
        "000b5bbbaaaa" : {
         "uuid" : "000b5bbbaaaa",
         "enabled" : false,
         "family" : "thunderboard",
         "type" : "react",
         "autoconnect" : true,
         "readIntervals" : {
           "environment" : {
             "humidity" : 15000,
             "temperature" : 15000,
             "uv" : 15000
           },
           "ambient-light" : {
             "ambient-light" : 15000
           }
          },
         "services" : {
           "generic-access" : ["device-name"],
           "device-info" : ["manufacturer"],
           "environment" : ["humidity","temperature","uv"],
           "ambient-light" : ["ambient-light"]
        }
      }
    };

    var dataCallback = function(data) {
      console.log('Thunderboard Event',data);
    };

    var normalizeData = true;

    var ThunderBoard = require('thunderboard-ble');
    var tb = new ThunderBoard(config,dataCallback,normalizeData);

Service / Characterstic Names

Thunderboard React

| Service | Characteristics | |--- |:-- | | generic-access | device-name, appearance | | generic-attribute | service-changed | | device-info | manufacturer, model-num, hardware-revision, firmware-revision, system-id | | battery | battery-level | | environment | humidity, temperature, uv | | ambient-light | ambient-light | | cycling-speed-cadence | csc-measurement, csc-feature, sc-control-point | | acceleration-orientation | acceleration, orientation, control-point, | | automation | digital, characteristic-format, num-digitals |

Thunderboard Sense

Note: I have not mapped all the Sense services/characteristics yet, but will complete in the near future.

| Service | Characteristics | |--- |:-- | | generic-access | device-name, appearance | | generic-attribute | service-changed | | device-info | manufacturer, model-num, hardware-revision, firmware-revision, system-id | | battery | battery-level | | environment | humidity, temperature, uv, ambient-light, microphone | | cycling-speed-cadence | csc-measurement, csc-feature, sc-control-point | | acceleration-orientation | acceleration, orientation, control-point, | | automation | digital, characteristic-format, num-digitals |