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",