Update log version on startup

This commit is contained in:
Koenkk
2018-06-15 17:49:15 +02:00
committed by Koen Kanters
parent b6aabcca64
commit 96191a2836
9 changed files with 71 additions and 61 deletions
-1
View File
@@ -1,6 +1,5 @@
node_modules
.travis*
.git
.gitignore
*.png
firmware
-1
View File
@@ -61,4 +61,3 @@ typings/
data/database.db
data/config.json
data/log*.txt
data/hash.json
+1 -1
View File
@@ -10,7 +10,7 @@ WORKDIR /app
# Install dependencies
RUN apk add --update --no-cache make gcc g++ python linux-headers udev nodejs git && \
npm install --unsafe-perm && \
apk del make gcc g++ python linux-headers udev git
apk del make gcc g++ python linux-headers udev
# Entrypoint
ENTRYPOINT ["./run.sh"]
+1 -1
View File
@@ -12,7 +12,7 @@ RUN [ "qemu-arm-static", "/bin/sh", "-c", \
cp /app/docker/run.sh /app && chmod +x /app/run.sh && \
apk add --update --no-cache make gcc g++ python linux-headers udev nodejs git && \
npm install --unsafe-perm && \
apk del make gcc g++ python linux-headers udev git"]
apk del make gcc g++ python linux-headers udev"]
# Entrypoint
ENTRYPOINT ["./run.sh"]
+1 -1
View File
@@ -12,7 +12,7 @@ RUN [ "qemu-aarch64-static", "/bin/sh", "-c", \
cp /app/docker/run.sh /app && chmod +x /app/run.sh && \
apk add --update --no-cache make gcc g++ python linux-headers udev nodejs git && \
npm install --unsafe-perm && \
apk del make gcc g++ python linux-headers udev git"]
apk del make gcc g++ python linux-headers udev"]
# Entrypoint
ENTRYPOINT ["./run.sh"]
+54 -45
View File
@@ -5,15 +5,7 @@ const settings = require('./util/settings');
const zigbeeShepherdConverters = require('zigbee-shepherd-converters');
const homeassistant = require('./homeassistant');
const objectAssignDeep = require(`object-assign-deep`);
const data = require('./util/data');
const pjson = require('../package.json');
let version = `${pjson.version}`;
try {
const hjson = require(data.joinPath('hash.json')).id;
version = version + `:${hjson}`;
} catch (error) {
logger.debug('Error parsing git hash version', error);
}
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');
const mqttDevicePrefixRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w\\s\\d]+/[\\w\\s\\d]+/set`, 'g');
@@ -47,44 +39,45 @@ class Controller {
}
start() {
logger.info(`Starting ... ${version}`);
this.zigbee.start(this.handleZigbeeMessage, (error) => {
if (error) {
logger.error('Failed to start');
} else {
// Log zigbee clients on startup and configure.
const devices = this.zigbee.getAllClients();
logger.info(`Currently ${devices.length} devices are joined:`);
devices.forEach((device) => {
logger.info(this.getDeviceStartupLogMessage(device));
this.configureDevice(device);
});
this.startupLogVersion(() => {
this.zigbee.start(this.handleZigbeeMessage, (error) => {
if (error) {
logger.error('Failed to start');
} else {
// Log zigbee clients on startup and configure.
const devices = this.zigbee.getAllClients();
logger.info(`Currently ${devices.length} devices are joined:`);
devices.forEach((device) => {
logger.info(this.getDeviceStartupLogMessage(device));
this.configureDevice(device);
});
// Enable zigbee join.
if (settings.get().permit_join) {
logger.warn('`permit_join` set to `true` in configuration.yaml.');
logger.warn('Allowing new devices to join.');
logger.warn('Set `permit_join` to `false` once you joined all devices.');
this.zigbee.permitJoin(true);
// Enable zigbee join.
if (settings.get().permit_join) {
logger.warn('`permit_join` set to `true` in configuration.yaml.');
logger.warn('Allowing new devices to join.');
logger.warn('Set `permit_join` to `false` once you joined all devices.');
this.zigbee.permitJoin(true);
}
// Start timers.
this.pollTimer(true);
this.softResetTimeout(true);
// Connect to MQTT broker
const subscriptions = [
`${settings.get().mqtt.base_topic}/+/set`,
`${settings.get().mqtt.base_topic}/+/+/set`,
`${settings.get().mqtt.base_topic}/bridge/config/+`,
];
if (settings.get().homeassistant) {
subscriptions.push('hass/status');
}
this.mqtt.connect(this.handleMQTTMessage, subscriptions, () => this.handleMQTTConnected());
}
// Start timers.
this.pollTimer(true);
this.softResetTimeout(true);
// Connect to MQTT broker
const subscriptions = [
`${settings.get().mqtt.base_topic}/+/set`,
`${settings.get().mqtt.base_topic}/+/+/set`,
`${settings.get().mqtt.base_topic}/bridge/config/+`,
];
if (settings.get().homeassistant) {
subscriptions.push('hass/status');
}
this.mqtt.connect(this.handleMQTTMessage, subscriptions, () => this.handleMQTTConnected());
}
});
});
}
@@ -529,6 +522,22 @@ class Controller {
this.mqtt.publish(deviceSettings.friendly_name, JSON.stringify(payload), options);
}
startupLogVersion(callback) {
const git = require('git-last-commit');
const packageJSON = require('../package.json');
const version = packageJSON.version;
git.getLastCommit((err, commit) => {
if (err) {
logger.info(`Starting zigbee2mqtt version ${version}`);
} else {
logger.info(`Starting zigbee2mqtt version ${version} (commit ${commit.shortHash})`);
}
callback();
});
}
}
module.exports = Controller;
+12 -7
View File
@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"acorn": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.6.2.tgz",
"integrity": "sha512-zUzo1E5dI2Ey8+82egfnttyMlMZ2y0D8xOCO3PNPPlYXpl8NZvF6Qk9L9BEtJs+43FqEmfBViDqc5d1ckRDguw==",
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz",
"integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==",
"dev": true
},
"acorn-jsx": {
@@ -590,7 +590,7 @@
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
"acorn": "5.6.2",
"acorn": "5.7.1",
"acorn-jsx": "3.0.1"
}
},
@@ -720,6 +720,11 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
"git-last-commit": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/git-last-commit/-/git-last-commit-0.3.0.tgz",
"integrity": "sha1-zHcBrcYpt0f9OzOuXddTp0as6d8="
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -2782,9 +2787,9 @@
}
},
"zigbee-shepherd-converters": {
"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==",
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/zigbee-shepherd-converters/-/zigbee-shepherd-converters-2.0.8.tgz",
"integrity": "sha512-UAtzGF5HZpcfvclmD1fxFkNke0EEOlXMO1VZB8z+FzkuexW6ILVG+7sbys4XIxcrmPuD6/yRGAPsWDqmLITrOg==",
"requires": {
"debounce": "1.1.0"
},
+2 -1
View File
@@ -36,7 +36,8 @@
"zigbee-shepherd-converters": "*",
"json2yaml": "*",
"zcl-packet": "git+https://github.com/Koenkk/zcl-packet.git",
"js-yaml": "*"
"js-yaml": "*",
"git-last-commit": "*"
},
"devDependencies": {
"eslint": "*",
-3
View File
@@ -1,3 +0,0 @@
#!/bin/sh
echo "{\"id\": \"$(git rev-parse --short HEAD)\"}" > data/hash.json
echo "Hash version '$(git rev-parse --short HEAD)' generated successfully"