fibaro-beacon-scanner
Version:
Node.js beacon scanner based on noble that speaks to Fibaro
44 lines (34 loc) • 1.12 kB
JavaScript
// Logger definition
var winston = require('winston');
const logFormatter = function(options) {
return options.timestamp() + ' [' + options.level.toUpperCase() +
'] '+ (options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length ?
'\n\t'+ JSON.stringify(options.meta) : '' );
};
const timestamp = function() {
return new Date().toLocaleString();
};
const logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
timestamp: timestamp,
formatter: logFormatter,
json: false,
})
]
});
var noble = require('noble');
noble.on('stateChange', function(state) {
if (state === 'poweredOn') {
noble.startScanning([], true);
} else {
noble.stopScanning();
}
});
var beaconToScan = {'name': 'Green', 'address':'d6feeec61549'};
noble.on('discover', function(beacon) {
if (beacon.id === beaconToScan.address|| beacon.address === beaconToScan.address) {
logger.log('info', beaconToScan.name + ' found - RSSI: ' + beacon.rssi);
}
});