mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Migrate to new node function style
This commit is contained in:
parent
5afc5857c4
commit
ff49d2b217
@ -17,7 +17,7 @@
|
|||||||
<!-- Sample html file that corresponds to the 99-sample.js file -->
|
<!-- Sample html file that corresponds to the 99-sample.js file -->
|
||||||
<!-- This creates and configures the onscreen elements of the node -->
|
<!-- This creates and configures the onscreen elements of the node -->
|
||||||
|
|
||||||
<!-- If you use this as a template, replace IBM Corp. with your own name. -->
|
<!-- If you use this as a template, update the copyright with your own name. -->
|
||||||
|
|
||||||
<!-- First, the content of the edit dialog is defined. -->
|
<!-- First, the content of the edit dialog is defined. -->
|
||||||
|
|
||||||
|
@ -14,15 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
// If you use this as a template, replace IBM Corp. with your own name.
|
// If you use this as a template, update the copyright with your own name.
|
||||||
|
|
||||||
// Sample Node-RED node file
|
// Sample Node-RED node file
|
||||||
|
|
||||||
// Require main module
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
|
||||||
|
|
||||||
// The main node definition - most things happen in here
|
module.export = function(RED) {
|
||||||
function SampleNode(n) {
|
|
||||||
|
// The main node definition - most things happen in here
|
||||||
|
function SampleNode(n) {
|
||||||
// Create a RED node
|
// Create a RED node
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
@ -45,8 +45,10 @@ function SampleNode(n) {
|
|||||||
// Allows ports to be closed, connections dropped etc.
|
// Allows ports to be closed, connections dropped etc.
|
||||||
// eg: this.client.disconnect();
|
// eg: this.client.disconnect();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register the node by name. This must be called before overriding any of the
|
// Register the node by name. This must be called before overriding any of the
|
||||||
// Node functions.
|
// Node functions.
|
||||||
RED.nodes.registerType("sample",SampleNode);
|
RED.nodes.registerType("sample",SampleNode);
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var sentiment = require('sentiment');
|
var sentiment = require('sentiment');
|
||||||
|
|
||||||
function SentimentNode(n) {
|
function SentimentNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
|
|
||||||
@ -27,5 +27,6 @@ function SentimentNode(n) {
|
|||||||
node.send(msg);
|
node.send(msg);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("sentiment",SentimentNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("sentiment",SentimentNode);
|
|
||||||
|
@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
var parseString = require('xml2js').parseString;
|
var parseString = require('xml2js').parseString;
|
||||||
var useColors = true;
|
var useColors = true;
|
||||||
//util.inspect.styles.boolean = "red";
|
//util.inspect.styles.boolean = "red";
|
||||||
|
|
||||||
function Xml2jsNode(n) {
|
function Xml2jsNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.useEyes = n.useEyes||false;
|
this.useEyes = n.useEyes||false;
|
||||||
var node = this;
|
var node = this;
|
||||||
@ -40,5 +40,6 @@ function Xml2jsNode(n) {
|
|||||||
}
|
}
|
||||||
catch(e) { util.log("[73-parsexml.js] "+e); }
|
catch(e) { util.log("[73-parsexml.js] "+e); }
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("xml2js",Xml2jsNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("xml2js",Xml2jsNode);
|
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var js2xmlparser = require("js2xmlparser");
|
var js2xmlparser = require("js2xmlparser");
|
||||||
|
|
||||||
function Js2XmlNode(n) {
|
function Js2XmlNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.root = n.root;
|
this.root = n.root;
|
||||||
var node = this;
|
var node = this;
|
||||||
@ -32,5 +32,6 @@ function Js2XmlNode(n) {
|
|||||||
}
|
}
|
||||||
catch(e) { console.log(e); }
|
catch(e) { console.log(e); }
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("json2xml",Js2XmlNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("json2xml",Js2XmlNode);
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright 2013 IBM Corp.
|
* Copyright 2013, 2014 IBM Corp.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -14,14 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
try {
|
|
||||||
var cron = require("cron");
|
var cron = require("cron");
|
||||||
} catch(err) {
|
|
||||||
require("util").log("[inject] Warning: cannot find module 'cron'");
|
|
||||||
}
|
|
||||||
|
|
||||||
function InjectNode(n) {
|
function InjectNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.topic = n.topic;
|
this.topic = n.topic;
|
||||||
this.payload = n.payload;
|
this.payload = n.payload;
|
||||||
@ -68,11 +64,11 @@ function InjectNode(n) {
|
|||||||
this.send(msg);
|
this.send(msg);
|
||||||
msg = null;
|
msg = null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("inject",InjectNode);
|
RED.nodes.registerType("inject",InjectNode);
|
||||||
|
|
||||||
InjectNode.prototype.close = function() {
|
InjectNode.prototype.close = function() {
|
||||||
if (this.interval_id != null) {
|
if (this.interval_id != null) {
|
||||||
clearInterval(this.interval_id);
|
clearInterval(this.interval_id);
|
||||||
this.log("inject: repeat stopped");
|
this.log("inject: repeat stopped");
|
||||||
@ -81,9 +77,9 @@ InjectNode.prototype.close = function() {
|
|||||||
this.log("inject: cronjob stopped");
|
this.log("inject: cronjob stopped");
|
||||||
delete this.cronjob;
|
delete this.cronjob;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.httpAdmin.post("/inject/:id", function(req,res) {
|
RED.httpAdmin.post("/inject/:id", function(req,res) {
|
||||||
var node = RED.nodes.getNode(req.params.id);
|
var node = RED.nodes.getNode(req.params.id);
|
||||||
if (node != null) {
|
if (node != null) {
|
||||||
try {
|
try {
|
||||||
@ -97,4 +93,5 @@ RED.httpAdmin.post("/inject/:id", function(req,res) {
|
|||||||
} else {
|
} else {
|
||||||
res.send(404);
|
res.send(404);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,15 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
var ws = require("ws");
|
var ws = require("ws");
|
||||||
var events = require("events");
|
var events = require("events");
|
||||||
var debuglength = RED.settings.debugMaxLength||1000;
|
var debuglength = RED.settings.debugMaxLength||1000;
|
||||||
var useColors = false;
|
var useColors = false;
|
||||||
// util.inspect.styles.boolean = "red";
|
// util.inspect.styles.boolean = "red";
|
||||||
|
|
||||||
function DebugNode(n) {
|
function DebugNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.name = n.name;
|
this.name = n.name;
|
||||||
this.complete = n.complete;
|
this.complete = n.complete;
|
||||||
@ -55,11 +55,11 @@ function DebugNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var lastSentTime = (new Date()).getTime();
|
var lastSentTime = (new Date()).getTime();
|
||||||
|
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
var now = (new Date()).getTime();
|
var now = (new Date()).getTime();
|
||||||
if (now-lastSentTime > 15000) {
|
if (now-lastSentTime > 15000) {
|
||||||
lastSentTime = now;
|
lastSentTime = now;
|
||||||
@ -73,13 +73,13 @@ setInterval(function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 15000);
|
}, 15000);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RED.nodes.registerType("debug",DebugNode);
|
RED.nodes.registerType("debug",DebugNode);
|
||||||
|
|
||||||
DebugNode.send = function(msg) {
|
DebugNode.send = function(msg) {
|
||||||
if (msg.msg instanceof Error) {
|
if (msg.msg instanceof Error) {
|
||||||
msg.msg = msg.msg.toString();
|
msg.msg = msg.msg.toString();
|
||||||
} else if (typeof msg.msg === 'object') {
|
} else if (typeof msg.msg === 'object') {
|
||||||
@ -116,15 +116,15 @@ DebugNode.send = function(msg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastSentTime = (new Date()).getTime();
|
lastSentTime = (new Date()).getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
DebugNode.activeConnections = [];
|
DebugNode.activeConnections = [];
|
||||||
|
|
||||||
var path = RED.settings.httpAdminRoot || "/";
|
var path = RED.settings.httpAdminRoot || "/";
|
||||||
path = path + (path.slice(-1) == "/" ? "":"/") + "debug/ws";
|
path = path + (path.slice(-1) == "/" ? "":"/") + "debug/ws";
|
||||||
|
|
||||||
DebugNode.wsServer = new ws.Server({server:RED.server,path:path});
|
DebugNode.wsServer = new ws.Server({server:RED.server,path:path});
|
||||||
DebugNode.wsServer.on('connection',function(ws) {
|
DebugNode.wsServer.on('connection',function(ws) {
|
||||||
DebugNode.activeConnections.push(ws);
|
DebugNode.activeConnections.push(ws);
|
||||||
ws.on('close',function() {
|
ws.on('close',function() {
|
||||||
for (var i in DebugNode.activeConnections) {
|
for (var i in DebugNode.activeConnections) {
|
||||||
@ -137,21 +137,21 @@ DebugNode.wsServer.on('connection',function(ws) {
|
|||||||
ws.on('error', function(err) {
|
ws.on('error', function(err) {
|
||||||
util.log("[debug] ws error : "+err);
|
util.log("[debug] ws error : "+err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
DebugNode.wsServer.on('error', function(err) {
|
DebugNode.wsServer.on('error', function(err) {
|
||||||
util.log("[debug] ws server error : "+err);
|
util.log("[debug] ws server error : "+err);
|
||||||
});
|
});
|
||||||
|
|
||||||
DebugNode.logHandler = new events.EventEmitter();
|
DebugNode.logHandler = new events.EventEmitter();
|
||||||
DebugNode.logHandler.on("log",function(msg) {
|
DebugNode.logHandler.on("log",function(msg) {
|
||||||
if (msg.level == "warn" || msg.level == "error") {
|
if (msg.level == "warn" || msg.level == "error") {
|
||||||
DebugNode.send(msg);
|
DebugNode.send(msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
RED.log.addHandler(DebugNode.logHandler);
|
RED.log.addHandler(DebugNode.logHandler);
|
||||||
|
|
||||||
RED.httpAdmin.post("/debug/:id/:state", function(req,res) {
|
RED.httpAdmin.post("/debug/:id/:state", function(req,res) {
|
||||||
var node = RED.nodes.getNode(req.params.id);
|
var node = RED.nodes.getNode(req.params.id);
|
||||||
var state = req.params.state;
|
var state = req.params.state;
|
||||||
if (node != null) {
|
if (node != null) {
|
||||||
@ -167,4 +167,5 @@ RED.httpAdmin.post("/debug/:id/:state", function(req,res) {
|
|||||||
} else {
|
} else {
|
||||||
res.send(404);
|
res.send(404);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,12 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
var spawn = require('child_process').spawn;
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
|
||||||
var spawn = require('child_process').spawn;
|
function ExecNode(n) {
|
||||||
var exec = require('child_process').exec;
|
|
||||||
|
|
||||||
function ExecNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.cmd = n.command.trim();
|
this.cmd = n.command.trim();
|
||||||
this.append = n.append.trim() || "";
|
this.append = n.append.trim() || "";
|
||||||
@ -76,6 +75,7 @@ function ExecNode(n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("exec",ExecNode);
|
RED.nodes.registerType("exec",ExecNode);
|
||||||
|
}
|
||||||
|
@ -14,14 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
var util = require("util");
|
||||||
|
var vm = require("vm");
|
||||||
|
var fs = require('fs');
|
||||||
|
var fspath = require('path');
|
||||||
|
|
||||||
var util = require("util");
|
function FunctionNode(n) {
|
||||||
var vm = require("vm");
|
|
||||||
var fs = require('fs');
|
|
||||||
var fspath = require('path');
|
|
||||||
|
|
||||||
function FunctionNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.name = n.name;
|
this.name = n.name;
|
||||||
this.func = n.func;
|
this.func = n.func;
|
||||||
@ -65,7 +64,8 @@ function FunctionNode(n) {
|
|||||||
} catch(err) {
|
} catch(err) {
|
||||||
this.error(err);
|
this.error(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("function",FunctionNode);
|
RED.nodes.registerType("function",FunctionNode);
|
||||||
RED.library.register("functions");
|
RED.library.register("functions");
|
||||||
|
}
|
||||||
|
@ -14,13 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
var mustache = require("mustache");
|
||||||
|
var util = require("util");
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
var mustache = require("mustache");
|
function TemplateNode(n) {
|
||||||
var util = require("util");
|
|
||||||
var fs = require('fs');
|
|
||||||
|
|
||||||
function TemplateNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.name = n.name;
|
this.name = n.name;
|
||||||
this.template = n.template;
|
this.template = n.template;
|
||||||
@ -34,8 +33,9 @@ function TemplateNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
RED.nodes.registerType("template",TemplateNode);
|
||||||
|
|
||||||
|
RED.library.register("templates");
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("template",TemplateNode);
|
|
||||||
|
|
||||||
RED.library.register("templates");
|
|
||||||
|
@ -15,9 +15,8 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
//Simple node to introduce a pause into a flow
|
//Simple node to introduce a pause into a flow
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
function random(n) {
|
||||||
function random(n) {
|
|
||||||
var wait = n.randomFirst + (n.diff * Math.random());
|
var wait = n.randomFirst + (n.diff * Math.random());
|
||||||
if (n.buffer.length > 0) {
|
if (n.buffer.length > 0) {
|
||||||
n.send(n.buffer.pop());
|
n.send(n.buffer.pop());
|
||||||
@ -25,9 +24,9 @@ function random(n) {
|
|||||||
} else {
|
} else {
|
||||||
n.randomID = -1;
|
n.randomID = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function DelayNode(n) {
|
function DelayNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.pauseType = n.pauseType;
|
this.pauseType = n.pauseType;
|
||||||
@ -150,5 +149,6 @@ function DelayNode(n) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("delay",DelayNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("delay",DelayNode);
|
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
function CommentNode(n) {
|
||||||
function CommentNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("comment",CommentNode);
|
RED.nodes.registerType("comment",CommentNode);
|
||||||
|
}
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
function UnknownNode(n) {
|
||||||
function UnknownNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("unknown",UnknownNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("unknown",UnknownNode);
|
|
||||||
|
@ -14,14 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
|
||||||
var firmata = require("firmata");
|
|
||||||
var arduinoReady = false;
|
|
||||||
var thisboard = null;
|
|
||||||
|
|
||||||
// The Board Definition - this opens (and closes) the connection
|
var util = require("util");
|
||||||
function ArduinoNode(n) {
|
var firmata = require("firmata");
|
||||||
|
var arduinoReady = false;
|
||||||
|
var thisboard = null;
|
||||||
|
|
||||||
|
// The Board Definition - this opens (and closes) the connection
|
||||||
|
function ArduinoNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.device = n.device;
|
this.device = n.device;
|
||||||
this.repeat = n.repeat||25;
|
this.repeat = n.repeat||25;
|
||||||
@ -62,12 +63,12 @@ function ArduinoNode(n) {
|
|||||||
}
|
}
|
||||||
util.log("[firmata] Stopped");
|
util.log("[firmata] Stopped");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("arduino-board",ArduinoNode);
|
RED.nodes.registerType("arduino-board",ArduinoNode);
|
||||||
|
|
||||||
|
|
||||||
// The Input Node
|
// The Input Node
|
||||||
function DuinoNodeIn(n) {
|
function DuinoNodeIn(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.buttonState = -1;
|
this.buttonState = -1;
|
||||||
this.pin = n.pin;
|
this.pin = n.pin;
|
||||||
@ -117,12 +118,12 @@ function DuinoNodeIn(n) {
|
|||||||
else {
|
else {
|
||||||
util.log("[firmata] Serial Port not Configured");
|
util.log("[firmata] Serial Port not Configured");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("arduino in",DuinoNodeIn);
|
RED.nodes.registerType("arduino in",DuinoNodeIn);
|
||||||
|
|
||||||
|
|
||||||
// The Output Node
|
// The Output Node
|
||||||
function DuinoNodeOut(n) {
|
function DuinoNodeOut(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.buttonState = -1;
|
this.buttonState = -1;
|
||||||
this.pin = n.pin;
|
this.pin = n.pin;
|
||||||
@ -183,5 +184,6 @@ function DuinoNodeOut(n) {
|
|||||||
else {
|
else {
|
||||||
util.log("[firmata] Serial Port not Configured");
|
util.log("[firmata] Serial Port not Configured");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("arduino out",DuinoNodeOut);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("arduino out",DuinoNodeOut);
|
|
||||||
|
@ -14,22 +14,22 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
var exec = require('child_process').exec;
|
var exec = require('child_process').exec;
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
if (!fs.existsSync("/dev/ttyAMA0")) { // unlikely if not on a Pi
|
if (!fs.existsSync("/dev/ttyAMA0")) { // unlikely if not on a Pi
|
||||||
throw "Info : Ignoring Raspberry Pi specific node.";
|
throw "Info : Ignoring Raspberry Pi specific node.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync("/usr/local/bin/gpio")) { // gpio command not installed
|
if (!fs.existsSync("/usr/local/bin/gpio")) { // gpio command not installed
|
||||||
throw "Info : Can't find Raspberry Pi wiringPi gpio command.";
|
throw "Info : Can't find Raspberry Pi wiringPi gpio command.";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map physical P1 pins to Gordon's Wiring-Pi Pins (as they should be V1/V2 tolerant)
|
// Map physical P1 pins to Gordon's Wiring-Pi Pins (as they should be V1/V2 tolerant)
|
||||||
var pintable = {
|
var pintable = {
|
||||||
// Physical : WiringPi
|
// Physical : WiringPi
|
||||||
"11":"0",
|
"11":"0",
|
||||||
"12":"1",
|
"12":"1",
|
||||||
"13":"2",
|
"13":"2",
|
||||||
@ -47,9 +47,9 @@ var pintable = {
|
|||||||
"23":"14",
|
"23":"14",
|
||||||
"8":"15",
|
"8":"15",
|
||||||
"10":"16"
|
"10":"16"
|
||||||
}
|
}
|
||||||
var tablepin = {
|
var tablepin = {
|
||||||
// WiringPi : Physical
|
// WiringPi : Physical
|
||||||
"0":"11",
|
"0":"11",
|
||||||
"1":"12",
|
"1":"12",
|
||||||
"2":"13",
|
"2":"13",
|
||||||
@ -67,9 +67,9 @@ var tablepin = {
|
|||||||
"14":"23",
|
"14":"23",
|
||||||
"15":"8",
|
"15":"8",
|
||||||
"16":"10"
|
"16":"10"
|
||||||
}
|
}
|
||||||
|
|
||||||
function GPIOInNode(n) {
|
function GPIOInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.buttonState = -1;
|
this.buttonState = -1;
|
||||||
this.pin = pintable[n.pin];
|
this.pin = pintable[n.pin];
|
||||||
@ -105,9 +105,9 @@ function GPIOInNode(n) {
|
|||||||
this.on("close", function() {
|
this.on("close", function() {
|
||||||
clearInterval(this._interval);
|
clearInterval(this._interval);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function GPIOOutNode(n) {
|
function GPIOOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.pin = pintable[n.pin];
|
this.pin = pintable[n.pin];
|
||||||
var node = this;
|
var node = this;
|
||||||
@ -139,9 +139,9 @@ function GPIOOutNode(n) {
|
|||||||
this.on("close", function() {
|
this.on("close", function() {
|
||||||
exec("gpio mode "+this.pin+" in");
|
exec("gpio mode "+this.pin+" in");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exec("gpio mode 0 in",function(err,stdout,stderr) {
|
exec("gpio mode 0 in",function(err,stdout,stderr) {
|
||||||
if (err) {
|
if (err) {
|
||||||
util.log('[36-rpi-gpio.js] Error: "gpio" command failed for some reason.');
|
util.log('[36-rpi-gpio.js] Error: "gpio" command failed for some reason.');
|
||||||
}
|
}
|
||||||
@ -152,7 +152,8 @@ exec("gpio mode 0 in",function(err,stdout,stderr) {
|
|||||||
exec("gpio mode 5 in");
|
exec("gpio mode 5 in");
|
||||||
exec("gpio mode 6 in");
|
exec("gpio mode 6 in");
|
||||||
exec("gpio mode 7 in");
|
exec("gpio mode 7 in");
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.nodes.registerType("rpi-gpio in",GPIOInNode);
|
RED.nodes.registerType("rpi-gpio in",GPIOInNode);
|
||||||
RED.nodes.registerType("rpi-gpio out",GPIOOutNode);
|
RED.nodes.registerType("rpi-gpio out",GPIOOutNode);
|
||||||
|
}
|
||||||
|
@ -14,11 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var connectionPool = require("./lib/mqttConnectionPool");
|
|
||||||
var util = require("util");
|
|
||||||
|
|
||||||
function MQTTBrokerNode(n) {
|
var connectionPool = require("./lib/mqttConnectionPool");
|
||||||
|
var util = require("util");
|
||||||
|
|
||||||
|
function MQTTBrokerNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.broker = n.broker;
|
this.broker = n.broker;
|
||||||
this.port = n.port;
|
this.port = n.port;
|
||||||
@ -28,26 +29,26 @@ function MQTTBrokerNode(n) {
|
|||||||
this.username = credentials.user;
|
this.username = credentials.user;
|
||||||
this.password = credentials.password;
|
this.password = credentials.password;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("mqtt-broker",MQTTBrokerNode);
|
RED.nodes.registerType("mqtt-broker",MQTTBrokerNode);
|
||||||
|
|
||||||
var querystring = require('querystring');
|
var querystring = require('querystring');
|
||||||
|
|
||||||
RED.httpAdmin.get('/mqtt-broker/:id',function(req,res) {
|
RED.httpAdmin.get('/mqtt-broker/:id',function(req,res) {
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
||||||
} else {
|
} else {
|
||||||
res.send(JSON.stringify({}));
|
res.send(JSON.stringify({}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.delete('/mqtt-broker/:id',function(req,res) {
|
RED.httpAdmin.delete('/mqtt-broker/:id',function(req,res) {
|
||||||
RED.nodes.deleteCredentials(req.params.id);
|
RED.nodes.deleteCredentials(req.params.id);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.post('/mqtt-broker/:id',function(req,res) {
|
RED.httpAdmin.post('/mqtt-broker/:id',function(req,res) {
|
||||||
var body = "";
|
var body = "";
|
||||||
req.on('data', function(chunk) {
|
req.on('data', function(chunk) {
|
||||||
body+=chunk;
|
body+=chunk;
|
||||||
@ -68,10 +69,10 @@ RED.httpAdmin.post('/mqtt-broker/:id',function(req,res) {
|
|||||||
RED.nodes.addCredentials(req.params.id,credentials);
|
RED.nodes.addCredentials(req.params.id,credentials);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function MQTTInNode(n) {
|
function MQTTInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.topic = n.topic;
|
this.topic = n.topic;
|
||||||
this.broker = n.broker;
|
this.broker = n.broker;
|
||||||
@ -90,18 +91,18 @@ function MQTTInNode(n) {
|
|||||||
} else {
|
} else {
|
||||||
this.error("missing broker configuration");
|
this.error("missing broker configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("mqtt in",MQTTInNode);
|
RED.nodes.registerType("mqtt in",MQTTInNode);
|
||||||
|
|
||||||
MQTTInNode.prototype.close = function() {
|
MQTTInNode.prototype.close = function() {
|
||||||
if (this.client) {
|
if (this.client) {
|
||||||
this.client.disconnect();
|
this.client.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function MQTTOutNode(n) {
|
function MQTTOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.topic = n.topic;
|
this.topic = n.topic;
|
||||||
@ -123,13 +124,14 @@ function MQTTOutNode(n) {
|
|||||||
} else {
|
} else {
|
||||||
this.error("missing broker configuration");
|
this.error("missing broker configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("mqtt out",MQTTOutNode);
|
RED.nodes.registerType("mqtt out",MQTTOutNode);
|
||||||
|
|
||||||
MQTTOutNode.prototype.close = function() {
|
MQTTOutNode.prototype.close = function() {
|
||||||
if (this.client) {
|
if (this.client) {
|
||||||
this.client.disconnect();
|
this.client.disconnect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,21 +14,22 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
|
||||||
var http = require("follow-redirects").http;
|
|
||||||
var https = require("follow-redirects").https;
|
|
||||||
var urllib = require("url");
|
|
||||||
var express = require("express");
|
|
||||||
var getBody = require('raw-body');
|
|
||||||
var mustache = require("mustache");
|
|
||||||
var querystring = require("querystring");
|
|
||||||
|
|
||||||
var cors = require('cors');
|
var util = require("util");
|
||||||
var jsonParser = express.json();
|
var http = require("follow-redirects").http;
|
||||||
var urlencParser = express.urlencoded();
|
var https = require("follow-redirects").https;
|
||||||
|
var urllib = require("url");
|
||||||
|
var express = require("express");
|
||||||
|
var getBody = require('raw-body');
|
||||||
|
var mustache = require("mustache");
|
||||||
|
var querystring = require("querystring");
|
||||||
|
|
||||||
function rawBodyParser(req, res, next) {
|
var cors = require('cors');
|
||||||
|
var jsonParser = express.json();
|
||||||
|
var urlencParser = express.urlencoded();
|
||||||
|
|
||||||
|
function rawBodyParser(req, res, next) {
|
||||||
if (req._body) return next();
|
if (req._body) return next();
|
||||||
req.body = "";
|
req.body = "";
|
||||||
req._body = true;
|
req._body = true;
|
||||||
@ -41,10 +42,10 @@ function rawBodyParser(req, res, next) {
|
|||||||
req.body = buf;
|
req.body = buf;
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function HTTPIn(n) {
|
function HTTPIn(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
if (RED.settings.httpNodeRoot !== false) {
|
if (RED.settings.httpNodeRoot !== false) {
|
||||||
|
|
||||||
@ -106,11 +107,11 @@ function HTTPIn(n) {
|
|||||||
} else {
|
} else {
|
||||||
this.warn("Cannot create http-in node when httpNodeRoot set to false");
|
this.warn("Cannot create http-in node when httpNodeRoot set to false");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("http in",HTTPIn);
|
RED.nodes.registerType("http in",HTTPIn);
|
||||||
|
|
||||||
|
|
||||||
function HTTPOut(n) {
|
function HTTPOut(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
this.on("input",function(msg) {
|
this.on("input",function(msg) {
|
||||||
@ -128,10 +129,10 @@ function HTTPOut(n) {
|
|||||||
node.warn("No response object");
|
node.warn("No response object");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("http response",HTTPOut);
|
RED.nodes.registerType("http response",HTTPOut);
|
||||||
|
|
||||||
function HTTPRequest(n) {
|
function HTTPRequest(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var nodeUrl = n.url;
|
var nodeUrl = n.url;
|
||||||
var isTemplatedUrl = (nodeUrl||"").indexOf("{{") != -1;
|
var isTemplatedUrl = (nodeUrl||"").indexOf("{{") != -1;
|
||||||
@ -204,24 +205,24 @@ function HTTPRequest(n) {
|
|||||||
}
|
}
|
||||||
req.end();
|
req.end();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("http request",HTTPRequest);
|
RED.nodes.registerType("http request",HTTPRequest);
|
||||||
|
|
||||||
RED.httpAdmin.get('/http-request/:id',function(req,res) {
|
RED.httpAdmin.get('/http-request/:id',function(req,res) {
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
||||||
} else {
|
} else {
|
||||||
res.send(JSON.stringify({}));
|
res.send(JSON.stringify({}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.delete('/http-request/:id',function(req,res) {
|
RED.httpAdmin.delete('/http-request/:id',function(req,res) {
|
||||||
RED.nodes.deleteCredentials(req.params.id);
|
RED.nodes.deleteCredentials(req.params.id);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.post('/http-request/:id',function(req,res) {
|
RED.httpAdmin.post('/http-request/:id',function(req,res) {
|
||||||
var body = "";
|
var body = "";
|
||||||
req.on('data', function(chunk) {
|
req.on('data', function(chunk) {
|
||||||
body+=chunk;
|
body+=chunk;
|
||||||
@ -242,4 +243,5 @@ RED.httpAdmin.post('/http-request/:id',function(req,res) {
|
|||||||
RED.nodes.addCredentials(req.params.id,credentials);
|
RED.nodes.addCredentials(req.params.id,credentials);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
// Require main module
|
module.exports = function(RED) {
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red"),
|
|
||||||
ws = require("ws"),
|
var ws = require("ws"),
|
||||||
inspect = require("sys").inspect;
|
inspect = require("sys").inspect;
|
||||||
|
|
||||||
// A node red node that sets up a local websocket server
|
// A node red node that sets up a local websocket server
|
||||||
function WebSocketListenerNode(n) {
|
function WebSocketListenerNode(n) {
|
||||||
// Create a RED node
|
// Create a RED node
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
@ -86,14 +86,14 @@ function WebSocketListenerNode(n) {
|
|||||||
node.server.close();
|
node.server.close();
|
||||||
node._inputNodes = [];
|
node._inputNodes = [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("websocket-listener",WebSocketListenerNode);
|
RED.nodes.registerType("websocket-listener",WebSocketListenerNode);
|
||||||
|
|
||||||
WebSocketListenerNode.prototype.registerInputNode = function(/*Node*/handler){
|
WebSocketListenerNode.prototype.registerInputNode = function(/*Node*/handler){
|
||||||
this._inputNodes.push(handler);
|
this._inputNodes.push(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
WebSocketListenerNode.prototype.handleEvent = function(id,/*socket*/socket,/*String*/event,/*Object*/data,/*Object*/flags){
|
WebSocketListenerNode.prototype.handleEvent = function(id,/*socket*/socket,/*String*/event,/*Object*/data,/*Object*/flags){
|
||||||
var msg;
|
var msg;
|
||||||
if (this.wholemsg) {
|
if (this.wholemsg) {
|
||||||
msg = JSON.parse(data);
|
msg = JSON.parse(data);
|
||||||
@ -107,22 +107,22 @@ WebSocketListenerNode.prototype.handleEvent = function(id,/*socket*/socket,/*Str
|
|||||||
for (var i = 0; i < this._inputNodes.length; i++) {
|
for (var i = 0; i < this._inputNodes.length; i++) {
|
||||||
this._inputNodes[i].send(msg);
|
this._inputNodes[i].send(msg);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
WebSocketListenerNode.prototype.broadcast = function(data){
|
WebSocketListenerNode.prototype.broadcast = function(data){
|
||||||
for(var i in this.server.clients){
|
for(var i in this.server.clients){
|
||||||
this.server.clients[i].send(data);
|
this.server.clients[i].send(data);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
WebSocketListenerNode.prototype.send = function(id,data){
|
WebSocketListenerNode.prototype.send = function(id,data){
|
||||||
var session = this._clients[id];
|
var session = this._clients[id];
|
||||||
if (session) {
|
if (session) {
|
||||||
session.send(data);
|
session.send(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function WebSocketInNode(n) {
|
function WebSocketInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.server = n.server;
|
this.server = n.server;
|
||||||
var node = this;
|
var node = this;
|
||||||
@ -132,10 +132,10 @@ function WebSocketInNode(n) {
|
|||||||
} else {
|
} else {
|
||||||
this.error("Missing server configuration");
|
this.error("Missing server configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("websocket in",WebSocketInNode);
|
RED.nodes.registerType("websocket in",WebSocketInNode);
|
||||||
|
|
||||||
function WebSocketOutNode(n) {
|
function WebSocketOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
this.server = n.server;
|
this.server = n.server;
|
||||||
@ -168,5 +168,6 @@ function WebSocketOutNode(n) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("websocket out",WebSocketOutNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("websocket out",WebSocketOutNode);
|
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var notify = require("fs.notify");
|
var notify = require("fs.notify");
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var sep = require("path").sep;
|
var sep = require("path").sep;
|
||||||
|
|
||||||
function WatchNode(n) {
|
function WatchNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.files = n.files.split(",");
|
this.files = n.files.split(",");
|
||||||
@ -38,5 +38,6 @@ function WatchNode(n) {
|
|||||||
this.close = function() {
|
this.close = function() {
|
||||||
notifications.close();
|
notifications.close();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("watch",WatchNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("watch",WatchNode);
|
|
||||||
|
@ -14,15 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var settings = RED.settings;
|
var settings = RED.settings;
|
||||||
var events = require("events");
|
var events = require("events");
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
var serialp = require("serialport");
|
var serialp = require("serialport");
|
||||||
|
|
||||||
// TODO: 'serialPool' should be encapsulated in SerialPortNode
|
// TODO: 'serialPool' should be encapsulated in SerialPortNode
|
||||||
|
|
||||||
function SerialPortNode(n) {
|
function SerialPortNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.serialport = n.serialport;
|
this.serialport = n.serialport;
|
||||||
this.newline = n.newline;
|
this.newline = n.newline;
|
||||||
@ -32,10 +32,10 @@ function SerialPortNode(n) {
|
|||||||
this.databits = parseInt(n.databits) || 8;
|
this.databits = parseInt(n.databits) || 8;
|
||||||
this.parity = n.parity || "none";
|
this.parity = n.parity || "none";
|
||||||
this.stopbits = parseInt(n.stopbits) || 1;
|
this.stopbits = parseInt(n.stopbits) || 1;
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("serial-port",SerialPortNode);
|
RED.nodes.registerType("serial-port",SerialPortNode);
|
||||||
|
|
||||||
function SerialOutNode(n) {
|
function SerialOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.serial = n.serial;
|
this.serial = n.serial;
|
||||||
this.serialConfig = RED.nodes.getNode(this.serial);
|
this.serialConfig = RED.nodes.getNode(this.serial);
|
||||||
@ -79,10 +79,10 @@ function SerialOutNode(n) {
|
|||||||
serialPool.close(this.serialConfig.serialport);
|
serialPool.close(this.serialConfig.serialport);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("serial out",SerialOutNode);
|
RED.nodes.registerType("serial out",SerialOutNode);
|
||||||
|
|
||||||
function SerialInNode(n) {
|
function SerialInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.serial = n.serial;
|
this.serial = n.serial;
|
||||||
this.serialConfig = RED.nodes.getNode(this.serial);
|
this.serialConfig = RED.nodes.getNode(this.serial);
|
||||||
@ -110,11 +110,11 @@ function SerialInNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("serial in",SerialInNode);
|
RED.nodes.registerType("serial in",SerialInNode);
|
||||||
|
|
||||||
|
|
||||||
var serialPool = function() {
|
var serialPool = function() {
|
||||||
var connections = {};
|
var connections = {};
|
||||||
return {
|
return {
|
||||||
get:function(port,baud,databits,parity,stopbits,newline,callback) {
|
get:function(port,baud,databits,parity,stopbits,newline,callback) {
|
||||||
@ -201,12 +201,13 @@ var serialPool = function() {
|
|||||||
delete connections[port];
|
delete connections[port];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}();
|
}();
|
||||||
|
|
||||||
RED.httpAdmin.get("/serialports",function(req,res) {
|
RED.httpAdmin.get("/serialports",function(req,res) {
|
||||||
serialp.list(function (err, ports) {
|
serialp.list(function (err, ports) {
|
||||||
res.writeHead(200, {'Content-Type': 'text/plain'});
|
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||||||
res.write(JSON.stringify(ports));
|
res.write(JSON.stringify(ports));
|
||||||
res.end();
|
res.end();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,14 +14,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var reconnectTime = RED.settings.socketReconnectTime||10000;
|
var reconnectTime = RED.settings.socketReconnectTime||10000;
|
||||||
var socketTimeout = RED.settings.socketTimeout||null;
|
var socketTimeout = RED.settings.socketTimeout||null;
|
||||||
var net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
var connectionPool = {};
|
var connectionPool = {};
|
||||||
|
|
||||||
function TcpIn(n) {
|
function TcpIn(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.host = n.host;
|
this.host = n.host;
|
||||||
this.port = n.port * 1;
|
this.port = n.port * 1;
|
||||||
@ -174,10 +174,10 @@ function TcpIn(n) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("tcp in",TcpIn);
|
RED.nodes.registerType("tcp in",TcpIn);
|
||||||
|
|
||||||
function TcpOut(n) {
|
function TcpOut(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.host = n.host;
|
this.host = n.host;
|
||||||
this.port = n.port * 1;
|
this.port = n.port * 1;
|
||||||
@ -301,6 +301,7 @@ function TcpOut(n) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("tcp out",TcpOut);
|
RED.nodes.registerType("tcp out",TcpOut);
|
||||||
|
}
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var dgram = require('dgram');
|
var dgram = require('dgram');
|
||||||
|
|
||||||
// The Input Node
|
// The Input Node
|
||||||
function UDPin(n) {
|
function UDPin(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.group = n.group;
|
this.group = n.group;
|
||||||
this.port = n.port;
|
this.port = n.port;
|
||||||
@ -81,12 +81,12 @@ function UDPin(n) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
server.bind(node.port,node.iface);
|
server.bind(node.port,node.iface);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("udp in",UDPin);
|
RED.nodes.registerType("udp in",UDPin);
|
||||||
|
|
||||||
|
|
||||||
// The Output Node
|
// The Output Node
|
||||||
function UDPout(n) {
|
function UDPout(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
//this.group = n.group;
|
//this.group = n.group;
|
||||||
this.port = n.port;
|
this.port = n.port;
|
||||||
@ -164,5 +164,6 @@ function UDPout(n) {
|
|||||||
node.error(err);
|
node.error(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("udp out",UDPout);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("udp out",UDPout);
|
|
||||||
|
@ -14,9 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME + "/red/red");
|
module.exports = function(RED) {
|
||||||
|
var operators = {
|
||||||
var operators = {
|
|
||||||
'eq': function(a, b) { return a == b; },
|
'eq': function(a, b) { return a == b; },
|
||||||
'neq': function(a, b) { return a != b; },
|
'neq': function(a, b) { return a != b; },
|
||||||
'lt': function(a, b) { return a < b; },
|
'lt': function(a, b) { return a < b; },
|
||||||
@ -31,9 +30,9 @@ var operators = {
|
|||||||
'null': function(a) { return typeof a == "undefined"; },
|
'null': function(a) { return typeof a == "undefined"; },
|
||||||
'nnull': function(a) { return typeof a != "undefined"; },
|
'nnull': function(a) { return typeof a != "undefined"; },
|
||||||
'else': function(a) { return a === true; }
|
'else': function(a) { return a === true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
function SwitchNode(n) {
|
function SwitchNode(n) {
|
||||||
RED.nodes.createNode(this, n);
|
RED.nodes.createNode(this, n);
|
||||||
this.rules = n.rules;
|
this.rules = n.rules;
|
||||||
this.property = n.property;
|
this.property = n.property;
|
||||||
@ -69,5 +68,6 @@ function SwitchNode(n) {
|
|||||||
}
|
}
|
||||||
this.send(onward);
|
this.send(onward);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("switch", SwitchNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("switch", SwitchNode);
|
|
||||||
|
@ -14,9 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME + "/red/red");
|
module.exports = function(RED) {
|
||||||
|
function ChangeNode(n) {
|
||||||
function ChangeNode(n) {
|
|
||||||
RED.nodes.createNode(this, n);
|
RED.nodes.createNode(this, n);
|
||||||
this.action = n.action;
|
this.action = n.action;
|
||||||
this.property = n.property || "";
|
this.property = n.property || "";
|
||||||
@ -69,5 +68,6 @@ function ChangeNode(n) {
|
|||||||
}
|
}
|
||||||
node.send(msg);
|
node.send(msg);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("change", ChangeNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("change", ChangeNode);
|
|
||||||
|
@ -14,9 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME + "/red/red");
|
module.exports = function(RED) {
|
||||||
|
function RangeNode(n) {
|
||||||
function RangeNode(n) {
|
|
||||||
RED.nodes.createNode(this, n);
|
RED.nodes.createNode(this, n);
|
||||||
this.action = n.action;
|
this.action = n.action;
|
||||||
this.round = n.round || false;
|
this.round = n.round || false;
|
||||||
@ -43,5 +42,6 @@ function RangeNode(n) {
|
|||||||
}
|
}
|
||||||
else { node.log("Not a number: "+msg.payload); }
|
else { node.log("Not a number: "+msg.payload); }
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("range", RangeNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("range", RangeNode);
|
|
||||||
|
@ -14,9 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
|
function CSVNode(n) {
|
||||||
function CSVNode(n) {
|
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.template = n.temp.split(",");
|
this.template = n.temp.split(",");
|
||||||
this.sep = n.sep || ',';
|
this.sep = n.sep || ',';
|
||||||
@ -74,5 +73,6 @@ function CSVNode(n) {
|
|||||||
else { node.log("This node only handles csv strings or js objects."); }
|
else { node.log("This node only handles csv strings or js objects."); }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("csv",CSVNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("csv",CSVNode);
|
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
|
|
||||||
function JSONNode(n) {
|
function JSONNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
this.on("input", function(msg) {
|
this.on("input", function(msg) {
|
||||||
@ -40,5 +40,6 @@ function JSONNode(n) {
|
|||||||
else { node.log("dropped: "+msg.payload); }
|
else { node.log("dropped: "+msg.payload); }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("json",JSONNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("json",JSONNode);
|
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var xml2js = require('xml2js');
|
var xml2js = require('xml2js');
|
||||||
var parseString = xml2js.parseString;
|
var parseString = xml2js.parseString;
|
||||||
var builder = new xml2js.Builder({renderOpts:{pretty:false}});
|
var builder = new xml2js.Builder({renderOpts:{pretty:false}});
|
||||||
|
|
||||||
function XMLNode(n) {
|
function XMLNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
this.on("input", function(msg) {
|
this.on("input", function(msg) {
|
||||||
@ -46,5 +46,6 @@ function XMLNode(n) {
|
|||||||
else { node.log("This node only handles xml strings or js objects."); }
|
else { node.log("This node only handles xml strings or js objects."); }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("xml",XMLNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("xml",XMLNode);
|
|
||||||
|
@ -14,17 +14,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var ntwitter = require('twitter-ng');
|
var ntwitter = require('twitter-ng');
|
||||||
var OAuth= require('oauth').OAuth;
|
var OAuth= require('oauth').OAuth;
|
||||||
|
|
||||||
function TwitterNode(n) {
|
function TwitterNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.screen_name = n.screen_name;
|
this.screen_name = n.screen_name;
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("twitter-credentials",TwitterNode);
|
RED.nodes.registerType("twitter-credentials",TwitterNode);
|
||||||
|
|
||||||
function TwitterInNode(n) {
|
function TwitterInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.active = true;
|
this.active = true;
|
||||||
this.user = n.user;
|
this.user = n.user;
|
||||||
@ -212,11 +212,11 @@ function TwitterInNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("twitter in",TwitterInNode);
|
RED.nodes.registerType("twitter in",TwitterInNode);
|
||||||
|
|
||||||
|
|
||||||
function TwitterOutNode(n) {
|
function TwitterOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.topic = n.topic;
|
this.topic = n.topic;
|
||||||
this.twitter = n.twitter;
|
this.twitter = n.twitter;
|
||||||
@ -248,10 +248,10 @@ function TwitterOutNode(n) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("twitter out",TwitterOutNode);
|
RED.nodes.registerType("twitter out",TwitterOutNode);
|
||||||
|
|
||||||
var oa = new OAuth(
|
var oa = new OAuth(
|
||||||
"https://api.twitter.com/oauth/request_token",
|
"https://api.twitter.com/oauth/request_token",
|
||||||
"https://api.twitter.com/oauth/access_token",
|
"https://api.twitter.com/oauth/access_token",
|
||||||
"OKjYEd1ef2bfFolV25G5nQ",
|
"OKjYEd1ef2bfFolV25G5nQ",
|
||||||
@ -259,25 +259,25 @@ var oa = new OAuth(
|
|||||||
"1.0",
|
"1.0",
|
||||||
null,
|
null,
|
||||||
"HMAC-SHA1"
|
"HMAC-SHA1"
|
||||||
);
|
);
|
||||||
|
|
||||||
var credentials = {};
|
var credentials = {};
|
||||||
|
|
||||||
RED.httpAdmin.get('/twitter/:id', function(req,res) {
|
RED.httpAdmin.get('/twitter/:id', function(req,res) {
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
res.send(JSON.stringify({sn:credentials.screen_name}));
|
res.send(JSON.stringify({sn:credentials.screen_name}));
|
||||||
} else {
|
} else {
|
||||||
res.send(JSON.stringify({}));
|
res.send(JSON.stringify({}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.delete('/twitter/:id', function(req,res) {
|
RED.httpAdmin.delete('/twitter/:id', function(req,res) {
|
||||||
RED.nodes.deleteCredentials(req.params.id);
|
RED.nodes.deleteCredentials(req.params.id);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.get('/twitter/:id/auth', function(req, res){
|
RED.httpAdmin.get('/twitter/:id/auth', function(req, res){
|
||||||
var credentials = {};
|
var credentials = {};
|
||||||
oa.getOAuthRequestToken({
|
oa.getOAuthRequestToken({
|
||||||
oauth_callback: req.query.callback
|
oauth_callback: req.query.callback
|
||||||
@ -295,9 +295,9 @@ RED.httpAdmin.get('/twitter/:id/auth', function(req, res){
|
|||||||
RED.nodes.addCredentials(req.params.id,credentials);
|
RED.nodes.addCredentials(req.params.id,credentials);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.get('/twitter/:id/auth/callback', function(req, res, next){
|
RED.httpAdmin.get('/twitter/:id/auth/callback', function(req, res, next){
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
credentials.oauth_verifier = req.query.oauth_verifier;
|
credentials.oauth_verifier = req.query.oauth_verifier;
|
||||||
|
|
||||||
@ -319,4 +319,5 @@ RED.httpAdmin.get('/twitter/:id/auth/callback', function(req, res, next){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var FeedParser = require("feedparser");
|
var FeedParser = require("feedparser");
|
||||||
var request = require("request");
|
var request = require("request");
|
||||||
|
|
||||||
function FeedParseNode(n) {
|
function FeedParseNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.url = n.url;
|
this.url = n.url;
|
||||||
this.interval = (parseInt(n.interval)||15)*60000;
|
this.interval = (parseInt(n.interval)||15)*60000;
|
||||||
@ -58,14 +58,14 @@ function FeedParseNode(n) {
|
|||||||
} else {
|
} else {
|
||||||
this.error("Invalid url");
|
this.error("Invalid url");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("feedparse",FeedParseNode);
|
RED.nodes.registerType("feedparse",FeedParseNode);
|
||||||
|
|
||||||
FeedParseNode.prototype.close = function() {
|
FeedParseNode.prototype.close = function() {
|
||||||
if (this.interval_id != null) {
|
if (this.interval_id != null) {
|
||||||
clearInterval(this.interval_id);
|
clearInterval(this.interval_id);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,23 +14,23 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
var nodemailer = require("nodemailer");
|
var nodemailer = require("nodemailer");
|
||||||
var Imap = null;
|
var Imap = null;
|
||||||
try {
|
try {
|
||||||
Imap = require('imap');
|
Imap = require('imap');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
util.log("[61-email.js] - imap npm not installed - no inbound email available");
|
util.log("[61-email.js] - imap npm not installed - no inbound email available");
|
||||||
}
|
}
|
||||||
|
|
||||||
//console.log(nodemailer.Transport.transports.SMTP.wellKnownHosts);
|
//console.log(nodemailer.Transport.transports.SMTP.wellKnownHosts);
|
||||||
|
|
||||||
// module.exports = { service: "Gmail", user: "blahblah@gmail.com", pass: "password", server: "imap.gmail.com", port: "993" }
|
// module.exports = { service: "Gmail", user: "blahblah@gmail.com", pass: "password", server: "imap.gmail.com", port: "993" }
|
||||||
try { var globalkeys = RED.settings.email || require(process.env.NODE_RED_HOME+"/../emailkeys.js"); }
|
try { var globalkeys = RED.settings.email || require(process.env.NODE_RED_HOME+"/../emailkeys.js"); }
|
||||||
catch(err) { }
|
catch(err) { }
|
||||||
|
|
||||||
function EmailNode(n) {
|
function EmailNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.topic = n.topic;
|
this.topic = n.topic;
|
||||||
this.name = n.name;
|
this.name = n.name;
|
||||||
@ -87,10 +87,10 @@ function EmailNode(n) {
|
|||||||
else { node.warn("No Email credentials found. See info panel."); }
|
else { node.warn("No Email credentials found. See info panel."); }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("e-mail",EmailNode);
|
RED.nodes.registerType("e-mail",EmailNode);
|
||||||
|
|
||||||
function EmailInNode(n) {
|
function EmailInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.name = n.name;
|
this.name = n.name;
|
||||||
this.repeat = n.repeat * 1000 || 300000;
|
this.repeat = n.repeat * 1000 || 300000;
|
||||||
@ -205,18 +205,18 @@ function EmailInNode(n) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
node.emit("input",{});
|
node.emit("input",{});
|
||||||
}
|
}
|
||||||
if (Imap != null) {
|
if (Imap != null) {
|
||||||
RED.nodes.registerType("e-mail in",EmailInNode);
|
RED.nodes.registerType("e-mail in",EmailInNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
var querystring = require('querystring');
|
var querystring = require('querystring');
|
||||||
|
|
||||||
RED.httpAdmin.get('/email/global',function(req,res) {
|
RED.httpAdmin.get('/email/global',function(req,res) {
|
||||||
res.send(JSON.stringify({hasToken:!(globalkeys && globalkeys.userid && globalkeys.password)}));
|
res.send(JSON.stringify({hasToken:!(globalkeys && globalkeys.userid && globalkeys.password)}));
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.get('/email/:id',function(req,res) {
|
RED.httpAdmin.get('/email/:id',function(req,res) {
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
res.send(JSON.stringify({userid:credentials.userid,hasPassword:(credentials.password&&credentials.password!="")}));
|
res.send(JSON.stringify({userid:credentials.userid,hasPassword:(credentials.password&&credentials.password!="")}));
|
||||||
@ -229,14 +229,14 @@ RED.httpAdmin.get('/email/:id',function(req,res) {
|
|||||||
else {
|
else {
|
||||||
res.send(JSON.stringify({}));
|
res.send(JSON.stringify({}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.delete('/email/:id',function(req,res) {
|
RED.httpAdmin.delete('/email/:id',function(req,res) {
|
||||||
RED.nodes.deleteCredentials(req.params.id);
|
RED.nodes.deleteCredentials(req.params.id);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.post('/email/:id',function(req,res) {
|
RED.httpAdmin.post('/email/:id',function(req,res) {
|
||||||
var body = "";
|
var body = "";
|
||||||
req.on('data', function(chunk) {
|
req.on('data', function(chunk) {
|
||||||
body+=chunk;
|
body+=chunk;
|
||||||
@ -257,4 +257,5 @@ RED.httpAdmin.post('/email/:id',function(req,res) {
|
|||||||
RED.nodes.addCredentials(req.params.id,credentials);
|
RED.nodes.addCredentials(req.params.id,credentials);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var irc = require("irc");
|
var irc = require("irc");
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
|
|
||||||
// The Server Definition - this opens (and closes) the connection
|
// The Server Definition - this opens (and closes) the connection
|
||||||
function IRCServerNode(n) {
|
function IRCServerNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.server = n.server;
|
this.server = n.server;
|
||||||
this.channel = n.channel;
|
this.channel = n.channel;
|
||||||
@ -30,12 +30,12 @@ function IRCServerNode(n) {
|
|||||||
this.ircclient.disconnect();
|
this.ircclient.disconnect();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("irc-server",IRCServerNode);
|
RED.nodes.registerType("irc-server",IRCServerNode);
|
||||||
|
|
||||||
|
|
||||||
// The Input Node
|
// The Input Node
|
||||||
function IrcInNode(n) {
|
function IrcInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.ircserver = n.ircserver;
|
this.ircserver = n.ircserver;
|
||||||
this.serverConfig = RED.nodes.getNode(this.ircserver);
|
this.serverConfig = RED.nodes.getNode(this.ircserver);
|
||||||
@ -87,12 +87,12 @@ function IrcInNode(n) {
|
|||||||
node.log(who+' was kicked from '+channel+' by '+by+': '+reason);
|
node.log(who+' was kicked from '+channel+' by '+by+': '+reason);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("irc in",IrcInNode);
|
RED.nodes.registerType("irc in",IrcInNode);
|
||||||
|
|
||||||
|
|
||||||
// The Output Node
|
// The Output Node
|
||||||
function IrcOutNode(n) {
|
function IrcOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.sendAll = n.sendObject;
|
this.sendAll = n.sendObject;
|
||||||
this.ircserver = n.ircserver;
|
this.ircserver = n.ircserver;
|
||||||
@ -136,5 +136,6 @@ function IrcOutNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("irc out",IrcOutNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("irc out",IrcOutNode);
|
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var spawn = require('child_process').spawn;
|
var spawn = require('child_process').spawn;
|
||||||
|
|
||||||
function TailNode(n) {
|
function TailNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.filename = n.filename;
|
this.filename = n.filename;
|
||||||
@ -51,6 +51,7 @@ function TailNode(n) {
|
|||||||
this.on("close", function() {
|
this.on("close", function() {
|
||||||
if (tail) tail.kill();
|
if (tail) tail.kill();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("tail",TailNode);
|
RED.nodes.registerType("tail",TailNode);
|
||||||
|
}
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
|
|
||||||
function FileNode(n) {
|
function FileNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.filename = n.filename;
|
this.filename = n.filename;
|
||||||
@ -58,10 +58,10 @@ function FileNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("file",FileNode);
|
RED.nodes.registerType("file",FileNode);
|
||||||
|
|
||||||
function FileInNode(n) {
|
function FileInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
|
|
||||||
this.filename = n.filename;
|
this.filename = n.filename;
|
||||||
@ -86,5 +86,6 @@ function FileInNode(n) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("file in",FileInNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("file in",FileInNode);
|
|
||||||
|
@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
var redis = require("redis");
|
var redis = require("redis");
|
||||||
|
|
||||||
var hashFieldRE = /^([^=]+)=(.*)$/;
|
var hashFieldRE = /^([^=]+)=(.*)$/;
|
||||||
|
|
||||||
var redisConnectionPool = function() {
|
var redisConnectionPool = function() {
|
||||||
var connections = {};
|
var connections = {};
|
||||||
var obj = {
|
var obj = {
|
||||||
get: function(host,port) {
|
get: function(host,port) {
|
||||||
@ -51,10 +51,10 @@ var redisConnectionPool = function() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
return obj;
|
return obj;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
|
||||||
function RedisOutNode(n) {
|
function RedisOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.port = n.port||"6379";
|
this.port = n.port||"6379";
|
||||||
this.hostname = n.hostname||"127.0.0.1";
|
this.hostname = n.hostname||"127.0.0.1";
|
||||||
@ -86,11 +86,12 @@ function RedisOutNode(n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("redis out",RedisOutNode);
|
RED.nodes.registerType("redis out",RedisOutNode);
|
||||||
|
|
||||||
RedisOutNode.prototype.close = function() {
|
RedisOutNode.prototype.close = function() {
|
||||||
redisConnectionPool.close(this.client);
|
redisConnectionPool.close(this.client);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
|
module.exports = function(RED) {
|
||||||
var mongo = require('mongodb');
|
var mongo = require('mongodb');
|
||||||
var MongoClient = mongo.MongoClient;
|
var MongoClient = mongo.MongoClient;
|
||||||
|
|
||||||
function MongoNode(n) {
|
function MongoNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.hostname = n.hostname;
|
this.hostname = n.hostname;
|
||||||
this.port = n.port;
|
this.port = n.port;
|
||||||
@ -37,27 +37,27 @@ function MongoNode(n) {
|
|||||||
url += this.hostname+":"+this.port+"/"+this.db;
|
url += this.hostname+":"+this.port+"/"+this.db;
|
||||||
|
|
||||||
this.url = url;
|
this.url = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("mongodb",MongoNode);
|
RED.nodes.registerType("mongodb",MongoNode);
|
||||||
|
|
||||||
var querystring = require('querystring');
|
var querystring = require('querystring');
|
||||||
|
|
||||||
RED.httpAdmin.get('/mongodb/:id',function(req,res) {
|
RED.httpAdmin.get('/mongodb/:id',function(req,res) {
|
||||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")}));
|
||||||
} else {
|
} else {
|
||||||
res.send(JSON.stringify({}));
|
res.send(JSON.stringify({}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.delete('/mongodb/:id',function(req,res) {
|
RED.httpAdmin.delete('/mongodb/:id',function(req,res) {
|
||||||
RED.nodes.deleteCredentials(req.params.id);
|
RED.nodes.deleteCredentials(req.params.id);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
RED.httpAdmin.post('/mongodb/:id',function(req,res) {
|
RED.httpAdmin.post('/mongodb/:id',function(req,res) {
|
||||||
var body = "";
|
var body = "";
|
||||||
req.on('data', function(chunk) {
|
req.on('data', function(chunk) {
|
||||||
body+=chunk;
|
body+=chunk;
|
||||||
@ -78,10 +78,10 @@ RED.httpAdmin.post('/mongodb/:id',function(req,res) {
|
|||||||
RED.nodes.addCredentials(req.params.id,credentials);
|
RED.nodes.addCredentials(req.params.id,credentials);
|
||||||
res.send(200);
|
res.send(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function MongoOutNode(n) {
|
function MongoOutNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.collection = n.collection;
|
this.collection = n.collection;
|
||||||
this.mongodb = n.mongodb;
|
this.mongodb = n.mongodb;
|
||||||
@ -131,11 +131,11 @@ function MongoOutNode(n) {
|
|||||||
this.clientDb.close();
|
this.clientDb.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("mongodb out",MongoOutNode);
|
RED.nodes.registerType("mongodb out",MongoOutNode);
|
||||||
|
|
||||||
|
|
||||||
function MongoInNode(n) {
|
function MongoInNode(n) {
|
||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.collection = n.collection;
|
this.collection = n.collection;
|
||||||
this.mongodb = n.mongodb;
|
this.mongodb = n.mongodb;
|
||||||
@ -174,5 +174,6 @@ function MongoInNode(n) {
|
|||||||
this.clientDb.close();
|
this.clientDb.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
RED.nodes.registerType("mongodb in",MongoInNode);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("mongodb in",MongoInNode);
|
|
||||||
|
@ -54,7 +54,7 @@ function loadNode(nodeDir, nodeFn) {
|
|||||||
var r = require(nodeFilename);
|
var r = require(nodeFilename);
|
||||||
if (typeof r === "function") {
|
if (typeof r === "function") {
|
||||||
try {
|
try {
|
||||||
var promise = r(RED);
|
var promise = r(require('../red'));
|
||||||
if (promise != null && typeof promise.then === "function") {
|
if (promise != null && typeof promise.then === "function") {
|
||||||
promise.then(function() {
|
promise.then(function() {
|
||||||
resolve(loadTemplate(templateFilename));
|
resolve(loadTemplate(templateFilename));
|
||||||
|
Loading…
Reference in New Issue
Block a user