Merge pull request #110 from ciotlosm/add_log_level

Added loging level through mqtt
This commit is contained in:
Koen Kanters
2018-06-14 20:31:25 +02:00
committed by GitHub
5 changed files with 44 additions and 39 deletions
+13 -3
View File
@@ -5,7 +5,6 @@ const settings = require('./util/settings');
const zigbeeShepherdConverters = require('zigbee-shepherd-converters');
const homeassistant = require('./homeassistant');
const objectAssignDeep = require(`object-assign-deep`);
const debug = require('debug')('zigbee2mqtt:controller');
const mqttConfigRegex = new RegExp(`${settings.get().mqtt.base_topic}/bridge/config/\\w+`, 'g');
const mqttDeviceRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w\\s\\d]+/set`, 'g');
@@ -14,6 +13,8 @@ const mqttDevicePrefixRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w
const pollInterval = 60 * 1000; // seconds * 1000.
const softResetTimeout = 3600 * 1000; // seconds * 1000.
const allowedLogLevels = ['error', 'warn', 'info', 'debug'];
/**
* Home Assistant requires ALL attributes to be present in ALL MQTT messages send by the device.
* https://community.home-assistant.io/t/missing-value-with-mqtt-only-last-data-set-is-shown/47070/9
@@ -205,7 +206,7 @@ class Controller {
// Zigbee message receieved, reset soft reset timeout.
this.softResetTimeout(true);
debug('Recieved zigbee message with data', message.data);
logger.debug('Recieved zigbee message with data', message.data);
if (message.type == 'devInterview') {
logger.info('Connecting with device...');
@@ -316,7 +317,7 @@ class Controller {
}
handleMQTTMessage(topic, message) {
logger.debug(`Incoming MQTT message '${topic}' '${message.toString()}'`);
logger.debug(`Recieved mqtt message on topic '${topic}' with data '${message}'`);
if (topic.match(mqttConfigRegex)) {
this.handleMQTTMessageConfig(topic, message);
@@ -339,6 +340,15 @@ class Controller {
if (option === 'permit_join') {
this.zigbee.permitJoin(message.toString().toLowerCase() === 'true');
} else if (option === 'log_level') {
const level = message.toString().toLowerCase();
if (allowedLogLevels.includes(level)) {
logger.info(`Switching log level to '${level}'`);
logger.transports.console.level = level;
logger.transports.file.level = level;
} else {
logger.error(`Could not set log level to '${level}'. Allowed level: '${allowedLogLevels.join(',')}'`);
}
} else if (option === 'devices') {
const devices = this.zigbee.getAllClients().map((device) => {
const mappedModel = zigbeeShepherdConverters.findByZigbeeModel(device.modelId);
+13 -1
View File
@@ -1,12 +1,22 @@
const winston = require('winston');
const data = require('./data');
const settings = require('./settings');
let logLevel = '';
if (process.env.DEBUG) {
logLevel = 'debug';
} else if (settings.get().advanced && settings.get().advanced.log_level) {
logLevel = settings.get().advanced.log_level;
} else {
logLevel = winston.level.info;
}
const logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: data.joinPath('log.txt'),
json: false,
level: winston.level.info,
level: logLevel,
maxFiles: 3,
maxsize: 10000000, // 10MB
}),
@@ -22,4 +32,6 @@ const logger = new (winston.Logger)({
],
});
logger.transports.console.level = logLevel;
module.exports = logger;
+1 -2
View File
@@ -2,7 +2,6 @@ const ZShepherd = require('zigbee-shepherd');
const logger = require('./util/logger');
const settings = require('./util/settings');
const data = require('./util/data');
const debug = require('debug')('zigbee2mqtt:zigbee');
const zclPacket = require('zcl-packet');
const advancedSettings = settings.get().advanced;
@@ -139,7 +138,7 @@ class Zigbee {
if (device) {
// Note: checkOnline has the callback argument but does not call callback
debug(`Check online ${deviceID}`);
logger.debug(`Check online ${deviceID}`);
this.shepherd.controller.checkOnline(device);
}
}
+17 -32
View File
@@ -222,16 +222,6 @@
"serialport": "4.0.7",
"stream-browserify": "2.0.1",
"unpi": "1.1.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"chalk": {
@@ -375,9 +365,9 @@
"integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
@@ -559,6 +549,17 @@
"strip-json-comments": "2.0.1",
"table": "4.0.2",
"text-table": "0.2.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
}
}
},
"eslint-config-google": {
@@ -1511,14 +1512,6 @@
"object.assign": "4.1.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"node-pre-gyp": {
"version": "0.6.32",
"bundled": true,
@@ -2777,14 +2770,6 @@
"zstack-constants": "0.2.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"zcl-id": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/zcl-id/-/zcl-id-0.3.2.tgz",
@@ -2797,9 +2782,9 @@
}
},
"zigbee-shepherd-converters": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/zigbee-shepherd-converters/-/zigbee-shepherd-converters-2.0.6.tgz",
"integrity": "sha512-WCa6556mDOn7324yU3EQjVlO2JpiwibJMAYZkFsNkF9uOB1ViYQsx49YDJWF4ShLfnq3VRnOHJm2UfVqc/3ACA==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/zigbee-shepherd-converters/-/zigbee-shepherd-converters-2.0.7.tgz",
"integrity": "sha512-yBLpHohmjw192Sp5rjX8pozLcjcnhy5AmVIob+CI0+AgGCHEpzGBjc9JvxLyH/N/XVOjMiyVK6wOb5B/Ua1xaw==",
"requires": {
"debounce": "1.1.0"
},
-1
View File
@@ -29,7 +29,6 @@
},
"homepage": "https://github.com/Koenkk/zigbee2mqtt/wiki",
"dependencies": {
"debug": "*",
"object-assign-deep": "*",
"mqtt": "*",
"winston": "2.4.2",