diff --git a/env.js b/env.js index c8be09fb2..58692857d 100644 --- a/env.js +++ b/env.js @@ -32,13 +32,23 @@ function config ( ) { } env.version = software.version; env.name = software.name; - env.MQTT_MONITOR = readENV('MQTT_MONITOR', null); env.DISPLAY_UNITS = readENV('DISPLAY_UNITS', 'mg/dl'); env.PORT = readENV('PORT', 1337); env.mongo = readENV('MONGO_CONNECTION') || readENV('MONGO') || readENV('MONGOLAB_URI'); env.mongo_collection = readENV('MONGO_COLLECTION', 'entries'); + env.MQTT_MONITOR = readENV('MQTT_MONITOR', null); if (env.MQTT_MONITOR) { - env.mqtt_client_id = [env.mongo.split('/').pop( ), env.mongo_collection].join('.'); + var hostDbCollection = [env.mongo.split('mongodb://').pop().split('@').pop( ), env.mongo_collection].join('/'); + var mongoHash = crypto.createHash('sha1'); + mongoHash.update(hostDbCollection); + //some MQTT servers only allow the client id to be 23 chars + env.mqtt_client_id = mongoHash.digest('base64').substring(0, 23); + console.info('Using Mongo host/db/collection to create the default MQTT client_id', hostDbCollection); + if (env.MQTT_MONITOR.indexOf('?clientId=') == -1) { + console.info('Set MQTT client_id to: ', env.mqtt_client_id); + } else { + console.info('MQTT configured to use a custom client id, it will override the default: ', env.mqtt_client_id); + } } env.settings_collection = readENV('MONGO_SETTINGS_COLLECTION', 'settings'); env.treatments_collection = readENV('MONGO_TREATMENTS_COLLECTION', 'treatments'); diff --git a/package.json b/package.json index fd31ca30e..b667af528 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "dependencies": { "async": "^0.9.0", "body-parser": "^1.4.3", + "bootevent": "0.0.1", "bower": "^1.3.8", "browserify-express": "^0.1.4", "compression": "^1.4.2", @@ -51,6 +52,7 @@ "event-stream": "~3.1.5", "express": "^4.6.1", "express-extension-to-accept": "0.0.2", + "forever": "~0.13.0", "git-rev": "git://github.com/bewest/git-rev.git", "long": "~2.2.3", "mongodb": "^1.4.7", @@ -58,10 +60,7 @@ "mqtt": "~0.3.11", "pushover-notifications": "0.2.0", "sgvdata": "git://github.com/ktind/sgvdata.git#wip/protobuf", - "socket.io": "^0.9.17", - "git-rev": "git://github.com/bewest/git-rev.git", - "bootevent": "0.0.1", - "forever": "~0.13.0" + "socket.io": "^0.9.17" }, "devDependencies": { "istanbul": "~0.3.5",