const Hive = require('bg-hive-api'); const ClimateControl = require('bg-hive-api/climateControl'); const em = require('events').EventEmitter; const util = require('util'); const logger = require('log4js').getLogger('Hive'); logger.level = 'debug'; const config = { 'login': 'martind2000@gmail.com', 'password': '1V3D4m526i' }; const hive = new Hive(config.login, config.password); const HiveController = function() { const _this = this; hive.on('login', function(context) { logger.debug('Connected'); // hive.Logout(); const climate = new ClimateControl(context); // Handle the on complete event. climate.on('complete', function(response) { // write the response state object to the console. // console.log(response); _this.emit('update', response); // log out hive.Logout(); }); climate.GetState(); }); // On logout call this event handler hive.on('logout', () => { logger.info('Connection Closed'); }); // On invalid username or password hive.on('not_authorised', () => { logger.error('Connection Refused'); }); // Log in this.on('newListener', listener => { logger.info(`Event Listener: ${ listener}`); }); return this; }; HiveController.prototype.update = function() { hive.Login(); }; util.inherits(HiveController, em); module.exports = HiveController;