hap-node-client
Advanced tools
Comparing version 0.0.18 to 0.0.19
@@ -25,2 +25,7 @@ "use strict"; | ||
* @param {type} options description | ||
* @Type {object} | ||
* @property {boolean} debug - Enable debug logging, defaults to false | ||
* @property {string} pin - Homebridge PIN, defaults to '031-45-154' | ||
* @property {number} refresh - Discovery refresh, defaults to 15 minutes | ||
* @property {number} timeout - Discovery timeout, defaults to 20 seconds | ||
* @example | ||
@@ -33,2 +38,5 @@ * | ||
this.debug = options['debug'] || false; | ||
this.refresh = options['refresh'] || 900; | ||
this.timeout = options['timeout'] || 20; | ||
this.pin = options['pin'] || '031-45-154'; | ||
if (this.debug) { | ||
@@ -47,9 +55,8 @@ let debugEnable = require('debug'); | ||
} | ||
this.pin = options.pin; | ||
_discovery.call(this); | ||
this._eventBus = new EventEmitter(); | ||
setInterval(_discovery.bind(this), options.refresh * 1000); | ||
setInterval(_discovery.bind(this), this.refresh * 1000); | ||
this._eventBus.on('Event', function(event) { | ||
debug('Event', event); | ||
this._eventBus.on('Event', function(events) { | ||
debug('Events', JSON.stringify(events)); | ||
/** | ||
@@ -64,3 +71,3 @@ * HomeKit Accessory Characteristic event pass thru | ||
* @property {number} iid - Instance ID of accessory characteristic generating event | ||
* @property {???} status - Updated characteristic value | ||
* @property {object} value - Updated characteristic value | ||
* @example Sample Message | ||
@@ -70,4 +77,8 @@ * | ||
*/ | ||
this.emit('hapEvent', event); | ||
this.emit(event.host + event.port + event.aid + event.iid, event); | ||
this.emit('hapEvent', events); | ||
this.emit(events[0].host + events[0].port + events[0].aid, events); | ||
events.forEach(function(event) { | ||
// debug('hapEvent', event.host + event.port + event.aid + event.iid, event); | ||
this.emit(event.host + event.port + event.aid + event.iid, event); | ||
}.bind(this)); | ||
}.bind(this)); | ||
@@ -109,3 +120,3 @@ // debug("This", this); | ||
setTimeout(_discoveryEnd.bind(this), 20 * 1000); // End discover after 55 seconds | ||
setTimeout(_discoveryEnd.bind(this), this.timeout * 1000); // End discover after 'timeout' seconds | ||
} catch (ex) { | ||
@@ -165,3 +176,3 @@ handleError(ex); | ||
if (err) { | ||
debug("Homebridge Control failed %s:%s", ipAddress, port, body, err); | ||
debug("Homebridge Control failed %s:%s", ipAddress, port, body, err.message); | ||
callback(err); | ||
@@ -217,3 +228,3 @@ } else if (response.statusCode !== 207) { | ||
if (err) { | ||
debug("Homebridge event reg failed %s:%s", ipAddress, port, body, err); | ||
debug("Homebridge event reg failed %s:%s", ipAddress, port, body, err.message); | ||
callback(err); | ||
@@ -283,3 +294,3 @@ } else if (response.statusCode !== 207) { | ||
try { | ||
rsp = JSON.parse(response.body); | ||
rsp = response.body; | ||
} catch (ex) { | ||
@@ -286,0 +297,0 @@ debug("Homebridge Response Failed %s:%s", ipAddress, port, response.statusCode, response.statusMessage); |
@@ -104,2 +104,3 @@ // Monkey patch before you require http for the first time. | ||
if (message.characteristics) { | ||
var events = []; | ||
message.characteristics.forEach(function(key, element) { | ||
@@ -112,6 +113,8 @@ // debug("char", key, element); | ||
'iid': key.iid, | ||
'value': key.value, | ||
'status': key.value | ||
}; | ||
request.eventBus.emit('Event', event); | ||
events.push(event); | ||
}); | ||
request.eventBus.emit('Event', events); | ||
} else { | ||
@@ -118,0 +121,0 @@ debug("Incomplete EVENT", url, message); |
{ | ||
"name": "hap-node-client", | ||
"version": "0.0.18", | ||
"version": "0.0.19", | ||
"description": "Client for Hap-NodeJS", | ||
@@ -5,0 +5,0 @@ "main": "HAPNodeJSClient.js", |
33334
856