grunig-nodes
Version:
Grünig Nodes Library
53 lines (41 loc) • 2.07 kB
JavaScript
module.exports = function(RED) {
function MQTT_InfluxDB_Alarm(config) {
RED.nodes.createNode(this, config);
var node = this;
// Nachrichtenverarbeitungsfunktion
node.on('input', function(msg) {
// Einstellungen speichern
var topicPath = config.topicPath || ""; // Standardwert verwenden, wenn nicht vorhanden
var type = config.typeDB || "";
for (var i = 1; i <= 15; i++) {
// Speichern der Datenwerte
var variableName = "data" + i;
var dataString = config[variableName];
// Speichern des Topics
var topic = topicPath + "/" + dataString;
var value;
if (msg.topic.includes(topic)){
if (msg.payload.Value && typeof msg.payload.Value === 'object' && 'value' in msg.payload.Value){
value = msg.payload.Value.value
}
else{
value = msg.payload.Value;
}
//******************** */
var obj1 = {};
obj1["Alarm"] = type;
obj1["Message"] = dataString;
var obj2 = { _type: "Alarm" };
var dataMsg = [obj1, obj2];
// Rückgabe des msg-Objekts
if (dataString !== "" && dataString !== undefined && value !== undefined && value === 1 && type !== undefined) {
msg.payload = dataMsg;
node.send(msg);
}
}
}
});
}
// Node-Typ registrieren
RED.nodes.registerType("MQTT-InfluxDB-Alarm", MQTT_InfluxDB_Alarm);
};