hap-node-client
Advanced tools
Comparing version 0.0.20 to 0.0.21
@@ -53,2 +53,3 @@ "use strict"; | ||
} | ||
this.eventRegistry = []; | ||
_discovery.call(this); | ||
@@ -58,2 +59,15 @@ this._eventBus = new EventEmitter(); | ||
/** | ||
* HomeKit Accessory Characteristic event pass thru | ||
* | ||
* @event HAPNodeJSClient#Disconnected | ||
* @Type {object} | ||
* @property {string} server - IP Address and port of disconnected homebridge | ||
* @example Sample Message | ||
* | ||
* { host: '192.168.1.4', port: 51826, aid: 16, iid: 11, status: false } | ||
*/ | ||
this._eventBus.on('Disconnected', _reconnectServer.bind(this)); | ||
this._eventBus.on('Event', function(events) { | ||
@@ -198,2 +212,28 @@ debug('Events', JSON.stringify(events)); | ||
/** | ||
* _reconnectServer - Reconnect to event server | ||
* | ||
* @param {type} server IP Address and port of disconnected homebridge server | ||
* @return {type} description | ||
*/ | ||
function _reconnectServer(server) { | ||
debug("HAPevent events Reregister", server, JSON.stringify(this.eventRegistry[server])); | ||
var reconnectTimer = setInterval(function() { | ||
this.HAPevent(server.split(':')[0], server.split(':')[1], JSON.stringify({ | ||
characteristics: this.eventRegistry[server] | ||
}), clearTimer); | ||
}.bind(this), 60000); | ||
function clearTimer(err, rsp) { | ||
if (err) { | ||
debug("HAPevent event reregister failed, retry in 60", server, err); | ||
} else { | ||
debug("HAPevent event reregister succedded", server); | ||
clearInterval(reconnectTimer); | ||
} | ||
} | ||
} | ||
/** | ||
* HAPNodeJSClient.prototype.HAPevent - Send a characteristic PUT Message to a particular homebridge instance, this maintains a socket connection for use in returning Events | ||
@@ -237,2 +277,9 @@ * | ||
var key = ipAddress + ':' + port; | ||
if (!this.eventRegistry[key]) { | ||
this.eventRegistry[key] = []; | ||
} | ||
// debug("1", JSON.parse(body).characteristics); | ||
this.eventRegistry[key] = this.eventRegistry[key].concat(JSON.parse(body).characteristics); | ||
// debug("2", JSON.stringify(this.eventRegistry[key])); | ||
try { | ||
@@ -248,3 +295,3 @@ rsp = JSON.parse(response.body); | ||
} | ||
}); | ||
}.bind(this)); | ||
}; | ||
@@ -251,0 +298,0 @@ |
@@ -90,3 +90,3 @@ // Monkey patch before you require http for the first time. | ||
if (request.eventBus) { | ||
request.eventBus.emit('disconnected', this); | ||
request.eventBus.emit('Disconnected', this.context.host); | ||
} | ||
@@ -93,0 +93,0 @@ }); |
{ | ||
"name": "hap-node-client", | ||
"version": "0.0.20", | ||
"version": "0.0.21", | ||
"description": "Client for Hap-NodeJS", | ||
@@ -5,0 +5,0 @@ "main": "HAPNodeJSClient.js", |
34888
897