# ble-shepherd

> A network controller and manager for the BLE machine network running on node.js

Latest version **1.2.0** (published 2018-10-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install ble-shepherd
pnpm add ble-shepherd
yarn add ble-shepherd
bun add ble-shepherd
```

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: insecure dependencies; abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.0 |
| Published | 2018-10-19 |
| First published | 2016-03-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 10 |
| Unpacked size | 192.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 77 |
| Author | Hedy Wang |
| Maintainers | hedywings |
| Keywords | ble, cc254x, csr8510 |

## Links

- npm: https://www.npmjs.com/package/ble-shepherd
- Repository: https://github.com/bluetoother/ble-shepherd
- Issues: https://github.com/bluetoother/ble-shepherd/issues
- npm.io page: https://npm.io/package/ble-shepherd

## Dependencies (10)

- [q](https://npm.io/package/q.md) ^1.4.1
- [enum](https://npm.io/package/enum.md) ^2.3.0
- [debug](https://npm.io/package/debug.md) ^2.2.0
- [noble](https://npm.io/package/noble.md) github:hedywings/noble#hci-socket
- [cc-bnp](https://npm.io/package/cc-bnp.md) ^0.5.2
- [busyman](https://npm.io/package/busyman.md) ^0.3.0
- [proving](https://npm.io/package/proving.md) ^0.1.0
- [async-kit](https://npm.io/package/async-kit.md) ^2.1.3
- [objectbox](https://npm.io/package/objectbox.md) ^0.3.0
- [ble-packet](https://npm.io/package/ble-packet.md) ^0.6.0

## Alternatives

- [@lexical/table](https://npm.io/package/@lexical/table.md) — 3.0M weekly downloads
- [mantine-datatable](https://npm.io/package/mantine-datatable.md) — 98.2K weekly downloads
- [react-native-collapsible-tab-view](https://npm.io/package/react-native-collapsible-tab-view.md) — 70.6K weekly downloads
- [@handsontable/vue3](https://npm.io/package/@handsontable/vue3.md) — 16.1K weekly downloads
- [vuewordcloud](https://npm.io/package/vuewordcloud.md) — 7.2K weekly downloads

## Recent versions

- 1.2.0 (latest) — 2018-10-19
- 1.1.9 — 2017-07-07
- 1.1.8 — 2017-04-25
- 1.1.7 — 2017-04-13
- 1.1.6 — 2017-04-13
- 1.1.5 — 2017-03-30
- 1.1.4 — 2017-01-06
- 1.1.3 — 2017-01-05
- 1.1.2 — 2016-11-17
- 1.1.1 — 2016-10-28
- 1.1.0 — 2016-09-20
- 1.0.3 — 2016-09-08
- 1.0.2 — 2016-09-05
- 1.0.1 — 2016-09-02
- 1.0.0 — 2016-08-17
- … 18 more at https://npm.io/package/ble-shepherd/versions

## README

<img src="https://raw.githubusercontent.com/bluetoother/documents/master/ble-shepherd/ble.png" align="right" height="96" width="96" />

# ble-shepherd  
A network controller and manager for the BLE machine network running on node.js  

[![NPM](https://nodei.co/npm/ble-shepherd.png?downloads=true)](https://nodei.co/npm/ble-shepherd/)  

[![Travis branch](https://travis-ci.org/bluetoother/ble-shepherd.svg?branch=master)](https://travis-ci.org/bluetoother/ble-shepherd)
[![npm](https://img.shields.io/npm/v/ble-shepherd.svg?maxAge=2592000)](https://www.npmjs.com/package/ble-shepherd)
[![npm](https://img.shields.io/npm/l/ble-shepherd.svg?maxAge=2592000)](https://www.npmjs.com/package/ble-shepherd)

<br />

## Documentation

Please visit the [Wiki](https://github.com/bluetoother/ble-shepherd/wiki).

<br />

## Overview  

**ble-shepherd** is a BLE network controller running on node.js. It is an extension of BLE *central* device that aims to help you in building a BLE machine network with less effort.(Here is a quick [**DEMO**](https://github.com/bluetoother/ble-shepherd/wiki#2-ble-webapp-with-http-server-and-reactjs)!)  

![BLE Network](https://raw.githubusercontent.com/bluetoother/documents/master/ble-shepherd/ble_network.png)
  
**ble-shepherd** has all the features you need in controlling your BLE network, monitoring and operating BLE *peripheral* devices. This controller has carried many network managing things for you, i.e., auto scanning for *peripheral* devices, storing(/reloading) connected devices records to(/from) the built-in database, configuring connection parameters, and notifying online/offline status of devices with auto reconnection.  

With **ble-shepherd**, you can get rid of such networking things and focus on your application logics. It opens another way of implementing IoT applications with BLE devices. With node.js, you can build your own application console(or dashboard) and design your own RESTful APIs in seconds. It's easy to make your BLE devices happy on the cloud.  

<br />

## Installation  

> $ npm install ble-shepherd --save  

* Hardware
    - [SmartRF05EB (with CC2540EM)](http://www.ti.com/tool/cc2540dk)  
    - [CC2540 USB Dongle](http://www.ti.com/tool/CC2540EMK-USB)  
    - [BLE4.0 USB adapter](https://github.com/sandeepmistry/node-bluetooth-hci-socket#compatible-bluetooth-40-usb-adapters)
    - [CC2640R2F LaunchPad](http://www.ti.com/tool/LAUNCHXL-CC2640R2)
    - [CC2650 SensorTag](http://www.ti.com/tool/cc2650stk)

<br />

## Usage  

See [Usage](https://github.com/bluetoother/ble-shepherd/wiki#Usage) on the Wiki for details.

The following example shows how to create a new instance of the `BleShepherd` class and call method `start()` to bring the `central` up. 

* Using `noble` as a sub-module  
  
```javascript
var BleShepherd = require('ble-shepherd');

var central = new BleShepherd('noble');

// do something before app starting

central.start();
```

<br />

## License  
  
Licensed under [MIT](https://github.com/bluetoother/ble-shepherd/blob/master/LICENSE).

---
_Source: https://npm.io/package/ble-shepherd · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
