sandeepmistry / node-eddystone-beacon-scanner

Scan for Eddystone beacons using Node.js
MIT License
104 stars 30 forks source link

node-eddystone-beacon-scanner

Scan for Eddystone beacons using Node.js

Uses noble for BLE peripheral scanning, then attempts to parse discovered peripherals using the Eddystone Protocol Specification.

Setup

npm install eddystone-beacon-scanner

Examples

See examples folder.

Usage

var EddystoneBeaconScanner = require('eddystone-beacon-scanner');

Register event handlers

Found

Triggered when a beacon is first found.

EddystoneBeaconScanner.on('found', function(beacon) {
  // ...
});

Updated

Triggered when a beacon advertisement detected.

EddystoneBeaconScanner.on('updated', function(beacon) {
  // ...
});

Lost

Triggered when a beacon has not been detected for 5 seconds.

EddystoneBeaconScanner.on('lost', function(beacon) {
  // ...
});

The beacon object will have the following properties depending on the frame type:

URL
UID
TLM

Start scanning

Start scanning for Eddystone beacons, you can specify whether to allow duplicates (default is false).

You can also specify the grace period (time to wait before declaring the beacon as lost). Default is 5000 ms.

EddystoneBeaconScanner.startScanning(allowDuplicates, gracePeriod);

Note: the lost event will only be triggered when allowDuplicates is set to true.

Stop scanning

Stop scanning for Eddystone beacons.

EddystoneBeaconScanner.stopScanning();