mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-07-03 10:31:37 +00:00
Merge pull request #110 from ciotlosm/add_log_level
Added loging level through mqtt
This commit is contained in:
+13
-3
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+17
-32
@@ -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"
|
||||
},
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/Koenkk/zigbee2mqtt/wiki",
|
||||
"dependencies": {
|
||||
"debug": "*",
|
||||
"object-assign-deep": "*",
|
||||
"mqtt": "*",
|
||||
"winston": "2.4.2",
|
||||
|
||||
Reference in New Issue
Block a user