eddystone-beacon-scanner
v3.0.0
Published
Scan for Eddystone beacon's using Node.js
Downloads
35
Maintainers
Readme
node-eddystone-beacon-scanner
Scan for Eddystone beacon's using Node.js
Use's 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
type
- Eddystone typetxPower
- Measured received power at 0 m in dBmurl
- (expanded) URL the beacon is broadcastingtlm
- TLM data, only present when interleaved broadcasts are used by the beaconrssi
- RSSI of discovered beacondistance
- Approximate distance from beacon
UID
type
- Eddystone typetxPower
- Measured received power at 0 m in dBmnamespace
- 10-byte ID Namespaceinstance
- 6-byte ID Instancetlm
- TLM data, only present when interleaved broadcasts are used by the beaconrssi
- RSSI of discovered beacondistance
- Approximate distance from beacon
TLM
tlm
version
- TLM versionvbatt
- Battery voltagetemp
- TemperatureadvCnt
- Advertising PDU countsecCnt
- Time since power-on or reboot
rssi
- RSSI of discovered beacondistance
- Approximate distance from beacon
Start scanning
Start scanning for Eddystone beacons, you can specify whether to allow duplicates (default is false).
EddystoneBeaconScanner.startScannning(allowDuplicates);
Note: the lost
event will only be triggered when allowDuplicates
is set to true
Stop scanning
Stop scanning for Eddystone beacons.
EddystoneBeaconScanner.stopScannning();