node-bleacon
A Node.js library for creating, discovering, and configuring iBeacons
Prerequisites
- See noble prerequisites and bleno prerequisites for your platform
Install
npm install bleacon
Usage
var Bleacon = ;
Start advertising
"Create" an iBeacon
var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0';var major = 0; // 0 - 65535var minor = 0; // 0 - 65535var measuredPower = -59; // -128 - 127 (measured RSSI at 1 meter) Bleacon;
Stop advertising
Stop your iBeacon
Bleacon;
Start scanning
var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0';var major = 0; // 0 - 65535var minor = 0; // 0 - 65535 Bleacon;
Examples
Bleacon; // scan for any bleacons Bleacon; // scan for bleacons with a particular uuid Bleacon; // scan for bleacons with a particular uuid and major Bleacon; // scan for bleacons with a particular uuid. major, and minor
Stop scanning
Bleacon;
Events
Bleacon;
bleacon
properties:
- uuid
- advertised uuid
- major
- advertised major
- minor
- advertised minor
- measuredPower
- advertised measured RSSI at 1 meter away
- rssi
- current RSSI
- accuracy
- +/- meters, based on measuredPower and RSSI
- proximity
- current proximity ('unknown', 'immediate', 'near', or 'far')
Configuring
iBeacon Advertisement format
Note: not official, determined using noble, and the AirLocate example.
Following data is in the manufacturer data section of the advertisment data
<company identifier (2 bytes)> <type (1 byte)> <data length (1 byte)> <uuid (16 bytes)> <major (2 bytes)> <minor (2 bytes)> <RSSI @ 1m>
Example:
4C00 02 15 585CDE931B0142CC9A1325009BEDC65E 0000 0000 C5
- Apple Company Identifier (Little Endian)
- data type, 0x02 => iBeacon
- data length, 0x15 = 21
- uuid:
585CDE931B0142CC9A1325009BEDC65E
- major:
0000
- minor:
0000
- meaured power at 1 meter:
0xc5
=-59