sandeepmistry / node-bleacon

A Node.js library for creating, discovering, and configuring iBeacons
MIT License
498 stars 88 forks source link

node-bleacon

Gitter

A Node.js library for creating, discovering, and configuring iBeacons

Prerequisites

Install

npm install bleacon

Usage

var Bleacon = require('bleacon');

Start advertising

"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 advertising

Stop your iBeacon

Bleacon.stopAdvertising();

Start scanning

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

Stop scanning

Bleacon.stopScanning();

Events

Bleacon.on('discover', function(bleacon) {
    // ...
});

bleacon properties:

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

Analytics