diff --git a/lib/mqtt/mqttClient.js b/lib/mqtt/mqttClient.js index 3feeb89..32821f3 100644 --- a/lib/mqtt/mqttClient.js +++ b/lib/mqtt/mqttClient.js @@ -1,7 +1,7 @@ 'use strict'; const mqtt = require('mqtt'); const request = require('request'); -let util = require('util'); +const util = require('util'); const logger = require('log4js').getLogger(); // Var db = require('../server/db-connector').dbConnection; @@ -16,21 +16,19 @@ let globalMode = 'FanOff'; let lastDispatch = 0; - const mqttClient = function(events) { - const orgId = ''; const userName = ''; const appKey = 'bob'; this.livingRoom = { - temp: 0, - last: 0, - data: [] + 'temp': 0, + 'last': 0, + 'data': [] }; this.ranges = { - day: {low: 19.5, high: 22.5, max: 22.7}, - night: {low: 18.5, high: 20.5, max: 20.7} + 'day': { 'low': 19.5, 'high': 22.5, 'max': 22.7 }, + 'night': { 'low': 18.5, 'high': 20.5, 'max': 20.7 } }; this.first = false; @@ -49,37 +47,39 @@ const mqttClient = function(events) { logger.info('Go for change state', mode); globalMode = mode; logger.debug('Global Mode now A:', globalMode); + /* Request(url, function (error, response, body) { logger.debug(response, body); }); */ - events.emit('changeState', mode === 'FanOn' ? 1:0); + events.emit('changeState', mode === 'FanOn' ? 1 : 0); d = new Date(); lastDispatch = d.getTime(); - } else { - logger.warn('Not sent...'); } + else + logger.warn('Not sent...'); }); this.updateGlobal = function(newStatus) { - globalMode = (newStatus === 0) ? 'FanOff' : 'FanOn'; - logger.info('updateGlobal changed to: ', globalMode); - }; + globalMode = (newStatus === 0) ? 'FanOff' : 'FanOn'; + logger.info('updateGlobal changed to: ', globalMode); + }; this.storeData = function(data, alt) { if (!this.first) { this.first = true; + return []; } let target = alt || this.livingRoom.data; - if (target.length === this.maxLength) { + if (target.length === this.maxLength) target = target.slice(1); - } + target.push(data); - if (alt) { + if (alt) return target; - } + this.livingRoom.data = target; }; @@ -87,33 +87,33 @@ const mqttClient = function(events) { const now = new Date; const mod = 60000 - (now.getTime() % 60000); this.storeData(this.livingRoom.temp); - const data = {id: 'graph', data: this.livingRoom.data}; + const data = { 'id': 'graph', 'data': this.livingRoom.data }; events.emit('sendSocket', data); setTimeout(this.logTemp.bind(this), mod + 10); }; this.fanTimer = function() { - let n; const now = new Date; const mod = 900000 - (now.getTime() % 900000); const day = now.getDay(); - const daytimeLimits = {low: 27900000, high: 63000000}; + const daytimeLimits = { 'low': 27900000, 'high': 63000000 }; const nowMS = (now.getHours() * 3600000) + (now.getMinutes() * 60000); const curRange = (nowMS < 25200000) ? this.ranges.night : this.ranges.day; if (globalMode === 'FanOff') { logger.info(`Fans off, temp should be <= ${curRange.low}`); mode = (parseFloat(this.livingRoom.temp) <= curRange.low) ? 'FanOn' : 'FanOff'; - } else { + } + else { logger.info(`Fans on, temp should not be less than ${curRange.high}`); mode = (parseFloat(this.livingRoom.temp) <= curRange.high) ? 'FanOn' : 'FanOff'; } if ((globalMode !== 'FanOff' || mode !== 'FanOff') && ((day >= 1 && day <= 5) && (nowMS >= daytimeLimits.low && nowMS <= daytimeLimits.high))) { logger.info('Week day'); - mode = 'FanOff' + mode = 'FanOff'; } n = now.getTime() - this.lastMsg; @@ -126,18 +126,16 @@ const mqttClient = function(events) { setTimeout(() => { throw new error('Ejecting for restart'); }, 15000); - } logger.info('LR temp:', this.livingRoom.temp); - const data = {id: 'temperature', data: {mode: globalMode, temp: this.livingRoom.temp}}; + const data = { 'id': 'temperature', 'data': { 'mode': globalMode, 'temp': this.livingRoom.temp } }; if (this.livingRoom.temp !== 0) { events.emit('sendIFTTT', mode); events.emit('sendSocket', data); } - setTimeout(this.fanTimer.bind(this), mod + 500); }; @@ -146,18 +144,19 @@ const mqttClient = function(events) { this.connected = false; const options = { - keepalive: 3600, - clientId: 'a:' + orgId + ':' + Date.now(), - username: userName, - password: new Buffer(appKey) + 'keepalive': 3600, + 'clientId': `a:${ orgId }:${ Date.now()}`, + 'username': userName, + 'password': new Buffer(appKey) }; - this.client = mqtt.connect('mqtt://' + orgId + 'silvrtree.co.uk', options); + //this.client = mqtt.connect(`mqtt://${ orgId }silvrtree.co.uk`, options); + this.client = mqtt.connect(`mqtt://192.16.1.150`, options); this.client.on('connect', function() { this.connected = true; - logger.info('Connected to Silvr Broker'); + logger.info('Connected to Aida Broker'); this.fanTimer(); this.logTemp(); }.bind(this)); @@ -187,15 +186,13 @@ const mqttClient = function(events) { const d = new Date(); this.lastMsg = d.getTime(); - const data = {id: 'temperature', data: {mode: globalMode, temp: this.livingRoom.temp}}; + const data = { 'id': 'temperature', 'data': { 'mode': globalMode, 'temp': this.livingRoom.temp } }; events.emit('sendSocket', data); - }.bind(this)); this.isConnected = function() { return this.connected; }; - }; module.exports.mqttClient = mqttClient;