A Node.js library for creating, discovering, and configuring iBeacons
npm install bleacon
var Bleacon = require('bleacon');
"Create" an iBeacon
var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0';
var major = 0; // 0 - 65535
var minor = 0; // 0 - 65535
var measuredPower = -59; // -128 - 127 (measured RSSI at 1 meter)
Bleacon.startAdvertising(uuid, major, minor, measuredPower);
Stop your iBeacon
Bleacon.stopAdvertising();
var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0';
var major = 0; // 0 - 65535
var minor = 0; // 0 - 65535
Bleacon.startScanning([uuid], [major], [minor]);
Examples
Bleacon.startScanning(); // scan for any bleacons
Bleacon.startScanning(uuid); // scan for bleacons with a particular uuid
Bleacon.startScanning(uuid, major); // scan for bleacons with a particular uuid and major
Bleacon.startScanning(uuid, major, minor); // scan for bleacons with a particular uuid. major, and minor
Bleacon.stopScanning();
Bleacon.on('discover', function(bleacon) {
// ...
});
bleacon
properties:
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
585CDE931B0142CC9A1325009BEDC65E
0000
0000
0xc5
= -59