From ff61f24b74e6a9bd05bcdfee70bf27f321da9787 Mon Sep 17 00:00:00 2001 From: Koenkk Date: Sat, 12 May 2018 15:54:02 +0200 Subject: [PATCH] Make panID configurable. #34 --- data/configuration.yaml | 5 +++++ lib/util/settings.js | 22 ++++++++++++++++++++-- lib/zigbee.js | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/data/configuration.yaml b/data/configuration.yaml index 3ed7c1ce..3e453de2 100644 --- a/data/configuration.yaml +++ b/data/configuration.yaml @@ -18,3 +18,8 @@ mqtt: serial: # Location of CC2531 USB sniffer port: /dev/ttyACM0 + +# Advanced configuration +advanced: + version: 1 + pan_id: 0x1a62 diff --git a/lib/util/settings.js b/lib/util/settings.js index d7e1fe30..54e39486 100644 --- a/lib/util/settings.js +++ b/lib/util/settings.js @@ -2,9 +2,28 @@ const YAWN = require('yawn-yaml/cjs'); const fs = require('fs'); const data = require('./data'); const file = data.joinPath('configuration.yaml'); +const logger = require('./logger'); let yawn = read(); +// Migrate configuration. +if (!yawn.json.advanced) { + // 1: Add advanced section to configuration.yaml + logger.info("Migrating configuration.yaml to version 1..."); + yawn.yaml += "\n\n" + + "# Advanced configuration\n" + + "advanced:\n" + + " version: 1\n" + + " pan_id: 0x1a62\n"; + + write_read(); +} + +function write_read() { + write(); + yawn = read(); +} + function write() { fs.writeFileSync(file, yawn.yaml); } @@ -32,8 +51,7 @@ function addDevice(id) { yawn.json = {...yawn.json, devices: devices}; } - write(); - yawn = read(); + write_read(); } module.exports = { diff --git a/lib/zigbee.js b/lib/zigbee.js index 011308a7..a102ee44 100644 --- a/lib/zigbee.js +++ b/lib/zigbee.js @@ -5,7 +5,7 @@ const deviceMapping = require('./devices'); const data = require('./util/data'); const shepherdSettings = { - net: {panId: 0x1a62}, + net: {panId: settings.get().advanced.pan_id}, dbPath: data.joinPath('database.db') };