diff --git a/mikrotik.html b/mikrotik-custom.html similarity index 86% rename from mikrotik.html rename to mikrotik-custom.html index df29062..491d5e4 100644 --- a/mikrotik.html +++ b/mikrotik-custom.html @@ -1,5 +1,5 @@ - - - \ No newline at end of file diff --git a/mikrotik.js b/mikrotik-custom.js similarity index 57% rename from mikrotik.js rename to mikrotik-custom.js index bef2254..60b9218 100644 --- a/mikrotik.js +++ b/mikrotik-custom.js @@ -1,7 +1,4 @@ -/** - * Created by Bladerunner on 11/03/16. - */ -var mikrotik = require('mikronode-ng'); +var mikrotik = require('mikronode-ng2'); module.exports = function(RED) { function NodeMikrotikDevice(n) { @@ -11,7 +8,7 @@ module.exports = function(RED) { this.username = n.username; this.password = n.password; } - RED.nodes.registerType("mikrotik-device", NodeMikrotikDevice); + RED.nodes.registerType("mikrotik-device-custom", NodeMikrotikDevice); function NodeMikrotik(config) { @@ -25,7 +22,6 @@ module.exports = function(RED) { var port = this.device.port; var username = this.device.username; var password = this.device.password; - var command; switch (parseInt(node.action)) { @@ -46,28 +42,30 @@ module.exports = function(RED) { break; } - var connection = null; - connection = mikrotik.getConnection(host, username, password, {closeOnDone : false, port: port}); - + var connection = mikrotik.getConnection(host, username, password, {closeOnDone : false, port: port}); + var conn = null; + try { + conn = connection.connect(); + } catch (error) { + node.error(error); + } + this.on('input', function(msg) { if (command == '') command = msg.payload; if (command == '') return false; - connection.getConnectPromise().then(function resolve(conn) { - conn.getCommandPromise(command).then(function resolved(values) { - var parsed = mikrotik.parseItems(values); - var pl = []; - parsed.forEach(function(item) { - pl.push(item); - }); - msg.payload = values; - node.send(msg); - }, function rejected(reason) { - node.error('Error executing cmd['+command+']: ' + JSON.stringify(reason)); + conn.getCommandPromise(command).then( + function resolved(values) { //promise resolved + var parsed = mikrotik.parseItems(values); + var pl = []; + parsed.forEach(function(item) { + pl.push(item); }); - }, - function(err) { - node.error("Connection error: " + err); + msg.payload = values; + node.send(msg); + }, + function notresolved(reason) { //promise rejected + node.error('Error executing cmd['+command+']: ' + JSON.stringify(reason)); } ); }); @@ -77,7 +75,7 @@ module.exports = function(RED) { }); } - RED.nodes.registerType("mikrotik", NodeMikrotik); + RED.nodes.registerType("mikrotik-custom", NodeMikrotik); }; diff --git a/package.json b/package.json index 59e4d59..c13d6bf 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "node-red-contrib-mikrotik3", + "name": "node-red-contrib-mikrotik-custom", "version": "0.1.2", "description": "Node based on nodered-contrib-mikrotik to work with Mikrotik devices", "scripts": { @@ -14,7 +14,7 @@ ], "node-red": { "nodes": { - "mikrotik": "mikrotik.js" + "mikrotik": "mikrotik-custom.js" } }, "keywords": [ @@ -22,9 +22,9 @@ ], "license": "MIT", "dependencies": { - "mikronode-ng": "^1.0.5" + "mikronode-ng2": "^1.0.12" }, - "main": "mikrotik.js", + "main": "mikrotik-custom.js", "devDependencies": {}, "repository": { "type": "git",