try using flow2src node to separate flows
This commit is contained in:
parent
018fa9cddd
commit
8d2734e748
14 changed files with 212 additions and 2 deletions
27
flows.json
27
flows.json
|
@ -730,7 +730,8 @@
|
||||||
"af148bf44b019b35",
|
"af148bf44b019b35",
|
||||||
"b961d989c357e6d6",
|
"b961d989c357e6d6",
|
||||||
"2cc2cdcf0b1f710e",
|
"2cc2cdcf0b1f710e",
|
||||||
"56d93c268a656fc4"
|
"56d93c268a656fc4",
|
||||||
|
"d02f1b2f2c3a2a30"
|
||||||
],
|
],
|
||||||
"x": 94,
|
"x": 94,
|
||||||
"y": 3019,
|
"y": 3019,
|
||||||
|
@ -6083,6 +6084,30 @@
|
||||||
"y": 2280,
|
"y": 2280,
|
||||||
"wires": []
|
"wires": []
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "d02f1b2f2c3a2a30",
|
||||||
|
"type": "comment",
|
||||||
|
"z": "ab51b1e8cad7b700",
|
||||||
|
"g": "d1b208e623179a25",
|
||||||
|
"name": "MQTT nodered base topic must be same as automate name (default is iotredloop)",
|
||||||
|
"info": "",
|
||||||
|
"x": 820,
|
||||||
|
"y": 3120,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ff47fafeee1a758e",
|
||||||
|
"type": "flow2src",
|
||||||
|
"z": "ab51b1e8cad7b700",
|
||||||
|
"name": "",
|
||||||
|
"incFlows": "Kernel,K.Routine",
|
||||||
|
"incSubflows": "",
|
||||||
|
"srcFolder": "src",
|
||||||
|
"chkAutoFlow2Src": true,
|
||||||
|
"x": 1220,
|
||||||
|
"y": 60,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "2623529da72f4fab",
|
"id": "2623529da72f4fab",
|
||||||
"type": "catch",
|
"type": "catch",
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
"node-red-contrib-msg-speed": "2.1.0",
|
"node-red-contrib-msg-speed": "2.1.0",
|
||||||
"node-red-contrib-queue-gate": "1.5.5",
|
"node-red-contrib-queue-gate": "1.5.5",
|
||||||
"node-red-contrib-simple-gate": "0.5.2",
|
"node-red-contrib-simple-gate": "0.5.2",
|
||||||
"node-red-contrib-stackhero-influxdb-v2": "1.0.4"
|
"node-red-contrib-stackhero-influxdb-v2": "1.0.4",
|
||||||
|
"@steveorevo/node-red-flow2src": "1.1.0"
|
||||||
},
|
},
|
||||||
"node-red": {
|
"node-red": {
|
||||||
"settings": {
|
"settings": {
|
||||||
|
|
7
src/K_Routine/minute_to_HH_mm.js
Normal file
7
src/K_Routine/minute_to_HH_mm.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var d = Number(msg.payload);
|
||||||
|
var h = Math.floor(d / 60);
|
||||||
|
var m = Math.floor(d % 60);
|
||||||
|
if (h < 10) { h = h < 5 ? '00' : '0' + h; }
|
||||||
|
if (m < 10) { m = m < 5 ? '00' : '0' + m; }
|
||||||
|
msg.payload = h + ':' + m;
|
||||||
|
return msg;
|
42
src/Kernel/check_device.js
Normal file
42
src/Kernel/check_device.js
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Check and recreate clean message of device description
|
||||||
|
// output 1 : error message
|
||||||
|
// output 2 : device registration
|
||||||
|
|
||||||
|
// script var
|
||||||
|
var msg = msg;
|
||||||
|
var newmsg = {};
|
||||||
|
|
||||||
|
// no message
|
||||||
|
if (typeof msg === 'undefined'){
|
||||||
|
return [null,null];
|
||||||
|
}
|
||||||
|
|
||||||
|
// check possible var existence
|
||||||
|
if (typeof msg.bucket === 'undefined' ||
|
||||||
|
typeof msg.measurement === 'undefined' ||
|
||||||
|
typeof msg.field === 'undefined' ||
|
||||||
|
typeof msg.format === 'undefined' ||
|
||||||
|
typeof msg.default === 'undefined'
|
||||||
|
) {
|
||||||
|
node.status({
|
||||||
|
fill: "red", shape: "ring", text: 'undefined device'});
|
||||||
|
return [msg,null];
|
||||||
|
}
|
||||||
|
|
||||||
|
// recreate msg
|
||||||
|
newmsg = {
|
||||||
|
'bucket': msg.bucket,
|
||||||
|
'measurement': msg.measurement,
|
||||||
|
'field': msg.field,
|
||||||
|
'format': msg.format,
|
||||||
|
'path': msg.bucket + '/' + msg.measurement + '/' + msg.field,
|
||||||
|
'payload': msg.default,
|
||||||
|
|
||||||
|
'protocol': typeof msg.protocol === 'undefined' ? '' : msg.protocol,
|
||||||
|
'model': typeof msg.model === 'undefined' ? '' : msg.model,
|
||||||
|
'id': typeof msg.id === 'undefined' ? '' : msg.id,
|
||||||
|
'option': typeof msg.option === 'undefined' ? 0 : msg.option
|
||||||
|
};
|
||||||
|
|
||||||
|
node.status({ fill: 'green', shape: "ring", text: newmsg.path + ' = ' + newmsg.payload });
|
||||||
|
return [null,newmsg];
|
1
src/Kernel/check_device_finalizejs
Normal file
1
src/Kernel/check_device_finalizejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
1
src/Kernel/check_device_initializejs
Normal file
1
src/Kernel/check_device_initializejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
50
src/Kernel/check_metric.js
Normal file
50
src/Kernel/check_metric.js
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
// output 1 : error message
|
||||||
|
// output 2 : device registration
|
||||||
|
|
||||||
|
// script var
|
||||||
|
var msg = msg;
|
||||||
|
var newmsg = {};
|
||||||
|
|
||||||
|
// try if msg.topic is a path
|
||||||
|
if (typeof msg.topic === 'string' &&
|
||||||
|
typeof msg.bucket === 'undefined' &&
|
||||||
|
typeof msg.measurement === 'undefined' &&
|
||||||
|
typeof msg.field === 'undefined'
|
||||||
|
) {
|
||||||
|
const device = msg.topic.split('/');
|
||||||
|
if (typeof device[1] === 'string' &&
|
||||||
|
typeof device[2] === 'string' &&
|
||||||
|
typeof device[3] === 'string'
|
||||||
|
) {
|
||||||
|
msg.source = device[0];
|
||||||
|
msg.bucket = device[1];
|
||||||
|
msg.measurement = device[2];
|
||||||
|
msg.field = device[3];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check var existence
|
||||||
|
if (typeof msg.bucket === 'undefined' ||
|
||||||
|
typeof msg.measurement === 'undefined' ||
|
||||||
|
typeof msg.field === 'undefined'
|
||||||
|
) {
|
||||||
|
node.status({
|
||||||
|
fill: "red", shape: "ring", text: 'undefined device'});
|
||||||
|
return [msg,null];
|
||||||
|
}
|
||||||
|
|
||||||
|
// recreate msg
|
||||||
|
newmsg = {
|
||||||
|
'topic': 'metric',
|
||||||
|
'source': typeof msg.source === 'string' ? msg.source : 'unknow',
|
||||||
|
'bucket': msg.bucket,
|
||||||
|
'measurement': msg.measurement,
|
||||||
|
'field': msg.field,
|
||||||
|
'path': msg.bucket + '/' + msg.measurement + '/' + msg.field,
|
||||||
|
'payload': msg.payload,
|
||||||
|
'repeat': typeof msg.repeat === 'boolean' ? msg.repeat : false
|
||||||
|
};
|
||||||
|
|
||||||
|
node.status({ fill: 'green', shape: "ring", text: newmsg.source + ' : ' + newmsg.path + ' = ' + newmsg.payload });
|
||||||
|
return [null,newmsg];
|
11
src/Kernel/set_gate_message.js
Normal file
11
src/Kernel/set_gate_message.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// script var
|
||||||
|
var msg = msg;
|
||||||
|
var newmsg = {};
|
||||||
|
|
||||||
|
// recreate msg
|
||||||
|
newmsg = {
|
||||||
|
'topic':'gate',
|
||||||
|
'payload':'open'
|
||||||
|
};
|
||||||
|
|
||||||
|
return newmsg;
|
11
src/Kernel/set_gate_message2.js
Normal file
11
src/Kernel/set_gate_message2.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// script var
|
||||||
|
var msg = msg;
|
||||||
|
var newmsg = {};
|
||||||
|
|
||||||
|
// recreate msg
|
||||||
|
newmsg = {
|
||||||
|
'topic':'gate',
|
||||||
|
'payload': msg.payload
|
||||||
|
};
|
||||||
|
|
||||||
|
return newmsg;
|
1
src/Kernel/set_gate_message2_finalizejs
Normal file
1
src/Kernel/set_gate_message2_finalizejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
1
src/Kernel/set_gate_message2_initializejs
Normal file
1
src/Kernel/set_gate_message2_initializejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
1
src/Kernel/set_gate_message_finalizejs
Normal file
1
src/Kernel/set_gate_message_finalizejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
1
src/Kernel/set_gate_message_initializejs
Normal file
1
src/Kernel/set_gate_message_initializejs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
57
src/manifest.json
Normal file
57
src/manifest.json
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "fabb645e0d88c91c",
|
||||||
|
"property": "func",
|
||||||
|
"file": "Kernel/check_device.js"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "fabb645e0d88c91c",
|
||||||
|
"property": "initialize",
|
||||||
|
"file": "Kernel/check_device_initializejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "fabb645e0d88c91c",
|
||||||
|
"property": "finalize",
|
||||||
|
"file": "Kernel/check_device_finalizejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2ba23548e87b0292",
|
||||||
|
"property": "func",
|
||||||
|
"file": "Kernel/set_gate_message.js"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2ba23548e87b0292",
|
||||||
|
"property": "initialize",
|
||||||
|
"file": "Kernel/set_gate_message_initializejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2ba23548e87b0292",
|
||||||
|
"property": "finalize",
|
||||||
|
"file": "Kernel/set_gate_message_finalizejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "82229e46e51f94f5",
|
||||||
|
"property": "func",
|
||||||
|
"file": "Kernel/check_metric.js"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "e6a4e861a99b196c",
|
||||||
|
"property": "func",
|
||||||
|
"file": "Kernel/set_gate_message2.js"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "e6a4e861a99b196c",
|
||||||
|
"property": "initialize",
|
||||||
|
"file": "Kernel/set_gate_message2_initializejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "e6a4e861a99b196c",
|
||||||
|
"property": "finalize",
|
||||||
|
"file": "Kernel/set_gate_message2_finalizejs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0385dd3208b83d41",
|
||||||
|
"property": "func",
|
||||||
|
"file": "K_Routine/minute_to_HH_mm.js"
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in a new issue