pi-ip
Version:
Global nodejs module that upon boot saves the Pi's IP Address to Firebase, to make it easy to find.
50 lines (43 loc) • 1.21 kB
JavaScript
var Interfaces = require('./interfaces');
var https = require("https");
var Promise = require("bluebird");
function Pidentifier(config) {
var interfaces = new Interfaces();
if(!config.firebaseDb || !config.piName) {
console.log('Missing config');
return;
}
function emit(data) {
return new Promise(function (resolve, reject) {
var req = https.request({
hostname: config.firebaseDb + ".firebaseio.com",
method: "PUT",
path: "/pi-ip/" + config.piName + ".json"
}, function(res){
resolve();
});
req.end(JSON.stringify(data));
});
}
function identify() {
return new Promise(function (resolve, reject) {
interfaces.discover().then(function(results){
if(results.connected) {
emit({
timestamp: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, ''),
interfaces: results.interfaces
}).then(function(){
resolve(results);
});
} else {
console.log('Unable to connect to internet', results);
resolve(results);
}
});
});
}
return {
identify: identify
}
}
module.exports = Pidentifier;