Allow to set device and mqtt url with CLI arguments.

This commit is contained in:
Koen Kanters
2018-04-08 14:46:20 +02:00
parent c516973b4a
commit fd68c243a8
3 changed files with 48 additions and 12 deletions
+33 -11
View File
@@ -1,17 +1,39 @@
var debug = require('debug')('xiaomi-zb2mqtt')
var util = require("util");
var perfy = require('perfy');
var ZShepherd = require('zigbee-shepherd');
var mqtt = require('mqtt')
const debug = require('debug')('xiaomi-zb2mqtt')
const util = require("util");
const perfy = require('perfy');
const ZShepherd = require('zigbee-shepherd');
const mqtt = require('mqtt')
const ArgumentParser = require('argparse').ArgumentParser;
var client = mqtt.connect('mqtt://192.168.1.10')
var shepherd = new ZShepherd('/dev/ttyACM0', {
net: {
panId: 0x1a62
}
// Parse arguments
const parser = new ArgumentParser({
version: '1.0.0',
addHelp:true,
description: 'Xiaomi Zigbee to MQTT bridge using zigbee-shepherd'
});
parser.addArgument(
['-d', '--device'],
{
help: 'CC2531 USB stick location, E.G. /dev/ttyACM0',
required: true,
}
);
parser.addArgument(
['-m', '--mqtt'],
{
help: 'MQTT server URL, E.G. mqtt://192.168.1.10',
required: true,
}
);
const args = parser.parseArgs();
// Setup client
const client = mqtt.connect(args.mqtt)
const shepherd = new ZShepherd(args.device, {net: {panId: 0x1a62}});
shepherd.on('ready', function() {
console.log('Server is ready. Current devices:');
shepherd.list().forEach(function(dev){
+13
View File
@@ -9,6 +9,14 @@
"resolved": "https://registry.npmjs.org/areq/-/areq-0.2.0.tgz",
"integrity": "sha1-ad0ojIF8hy3HLDfp0eciayayMcU="
},
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "1.0.3"
}
},
"async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
@@ -1575,6 +1583,11 @@
"through2": "2.0.3"
}
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"stream-browserify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+2 -1
View File
@@ -25,6 +25,7 @@
"dependencies": {
"mqtt": "*",
"perfy": "*",
"zigbee-shepherd": "*"
"zigbee-shepherd": "*",
"argparse": "*"
}
}