node-red-contrib-mobius-flow-base 2.5.86-beta.79 → 2.5.86-beta.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -193,6 +193,42 @@ module.exports = function (RED) {
|
|
|
193
193
|
});
|
|
194
194
|
};
|
|
195
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Update a given node's node status based on last active time
|
|
198
|
+
* @param {Object} mobiusNode - The node whos status is to be updated
|
|
199
|
+
*/
|
|
200
|
+
node.updateNodeStatus = function (mobiusNode) {
|
|
201
|
+
node.users[mobiusNode.id] = mobiusNode;
|
|
202
|
+
const timeSinceLastActive = Date.now() - node.users[mobiusNode.id].lastActiveTime;
|
|
203
|
+
let statusText = '';
|
|
204
|
+
let statusColour = 'green';
|
|
205
|
+
if (timeSinceLastActive < 15 * 60000) {
|
|
206
|
+
statusText = 'Active less than 15 minutes ago';
|
|
207
|
+
}
|
|
208
|
+
if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
|
|
209
|
+
statusText = 'Active less than 3 hours ago';
|
|
210
|
+
}
|
|
211
|
+
if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
|
|
212
|
+
statusText = 'Active less than 12 hours ago';
|
|
213
|
+
}
|
|
214
|
+
if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
|
|
215
|
+
statusText = 'Active less than 24 hours ago';
|
|
216
|
+
}
|
|
217
|
+
if (timeSinceLastActive > 24 * 60 * 60000 && node.users[mobiusNode.id].lastActiveTime > 0) {
|
|
218
|
+
statusColour = 'grey';
|
|
219
|
+
statusText = 'Active more than 24 hours ago';
|
|
220
|
+
}
|
|
221
|
+
if (node.users[mobiusNode.id].lastActiveTime === 0) {
|
|
222
|
+
statusColour = 'grey';
|
|
223
|
+
statusText = 'Never Active';
|
|
224
|
+
}
|
|
225
|
+
node.users[mobiusNode.id].status({
|
|
226
|
+
fill: statusColour,
|
|
227
|
+
shape: 'dot',
|
|
228
|
+
text: statusText,
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
|
|
196
232
|
/**
|
|
197
233
|
* Register a new Mobius node with this config node
|
|
198
234
|
* @param {Object} mobiusNode - The new node to register
|
|
@@ -208,54 +244,15 @@ module.exports = function (RED) {
|
|
|
208
244
|
}
|
|
209
245
|
node.users[mobiusNode.id].lastActiveTime = 0;
|
|
210
246
|
node.users[mobiusNode.id].on('send', () => {
|
|
247
|
+
console.log('lalala');
|
|
248
|
+
console.log(Date.now());
|
|
211
249
|
node.users[mobiusNode.id].lastActiveTime = Date.now();
|
|
250
|
+
node.updateNodeStatus(mobiusNode);
|
|
251
|
+
console.log(node.users[mobiusNode.id].lastActiveTime);
|
|
212
252
|
});
|
|
213
253
|
node.users[mobiusNode.id].statusCheckLoop = setInterval(() => {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if (timeSinceLastActive < 15 * 60000) {
|
|
217
|
-
node.users[mobiusNode.id].status({
|
|
218
|
-
fill: 'green',
|
|
219
|
-
shape: 'dot',
|
|
220
|
-
text: 'Active less than 15 minutes ago',
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
|
|
224
|
-
node.users[mobiusNode.id].status({
|
|
225
|
-
fill: 'green',
|
|
226
|
-
shape: 'dot',
|
|
227
|
-
text: 'Active less than 3 hours ago',
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
|
|
231
|
-
node.users[mobiusNode.id].status({
|
|
232
|
-
fill: 'green',
|
|
233
|
-
shape: 'dot',
|
|
234
|
-
text: 'Active less than 12 hours ago',
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
|
|
238
|
-
node.users[mobiusNode.id].status({
|
|
239
|
-
fill: 'green',
|
|
240
|
-
shape: 'dot',
|
|
241
|
-
text: 'Active less than 24 hours ago',
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
if (timeSinceLastActive > 24 * 60 * 60000 && node.users[mobiusNode.id].lastActiveTime > 0) {
|
|
245
|
-
node.users[mobiusNode.id].status({
|
|
246
|
-
fill: 'grey',
|
|
247
|
-
shape: 'dot',
|
|
248
|
-
text: 'Active more than 24 hours ago',
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
if (node.users[mobiusNode.id].lastActiveTime === 0) {
|
|
252
|
-
node.users[mobiusNode.id].status({
|
|
253
|
-
fill: 'grey',
|
|
254
|
-
shape: 'dot',
|
|
255
|
-
text: 'Never Active',
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
}, 5000);
|
|
254
|
+
node.updateNodeStatus(mobiusNode);
|
|
255
|
+
}, 60000);
|
|
259
256
|
};
|
|
260
257
|
|
|
261
258
|
/**
|
|
@@ -68,12 +68,10 @@ module.exports = function (RED) {
|
|
|
68
68
|
]);
|
|
69
69
|
} else {
|
|
70
70
|
node.send({ topic: response.uri, payload: allResources });
|
|
71
|
-
console.log(node.lastActiveTime);
|
|
72
71
|
}
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
node.serviceConn.register(node);
|
|
76
|
-
console.log(node.statusCheckLoop);
|
|
77
75
|
|
|
78
76
|
node.on('close', function (done) {
|
|
79
77
|
node.serviceConn.deregister(node, done);
|