Irgenwo stimmt noch etwas nicht.
Sosieht die erste function aus:
function numberToWord(num) {
const words = [“zero”, “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”,“nine”,“ten”,“eleven”,“twelve”,“thirteen”,“fourteen”,“fiveteen”,“sixteen”,“seventeen”,“eighteen”,“nineteen”,“twenty”,“twenty-one”,“twenty-two”,“twenty-three”,“twenty-four”];
return words[num];
}
if (msg.status.shape == “dot” && msg.status.fill == “blue” && msg.status.text == “1”) {
let relayNumber = msg.status.source.name.match(/\d+$/);
let relayNumberWord = numberToWord(relayNumber)
relayNumber = relayNumber[0]
// let relayNumber = msg.status.source.name.charAt(msg.status.source.name.length - 1);
// let relayNumberWord = numberToWord(relayNumber)
msg.relayNumber = relayNumber
let offtime = flow.get(“offtime”+relayNumber)
msg.offtime = offtime
msg.relayname = offtime != null ? global.get(“N”+relayNumberWord) + "
(turn off at: " + flow.get(“offtime”+relayNumber) + “)” : global.get(“N”+relayNumberWord)
// Prepare the output array, initializing all outputs to null
let outputs = Array(16).fill(null);
// Set the message to the appropriate output
outputs[relayNumber - 1] = msg; // Subtract 1 because array index is 0-based
// Send the message to the selected output
return outputs;
}
else if (msg.status.shape == “dot” && msg.status.fill == “blue” && msg.status.text == “0”) {
let relayNumber = msg.status.source.name.charAt(msg.status.source.name.length - 1);
let relayNumberWord = numberToWord(relayNumber)
msg.relayNumber = relayNumber
let offtime = flow.get(“offtime”+relayNumber)
msg.offtime = offtime
msg.relayname = global.get(“N”+relayNumberWord)
// Prepare the output array, initializing all outputs to null
let outputs = Array(16).fill(null);
// Set the message to the appropriate output
outputs[relayNumber - 1] = msg; // Subtract 1 because array index is 0-based
// Send the message to the selected output
return outputs;
}
und so die zweite:
function numberToWord(num) {
const words = [“zero”, “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”,“nine”,“ten”,“eleven”,“twelve”,“thirteen”,“fourteen”,“fiveteen”,“sixteen”,“seventeen”,“eighteen”,“nineteen”,“twenty”,“twenty-one”,“twenty-two”,“twenty-three”,“twenty-four”];
return words[num];
}
// Initialize an array to store messages for each output
let outputs = ;
// Iterate from 1 to 24 (corresponding to relay numbers 1 to 24)
for (let i = 1; i < 24; i++) {
let relayNumberWord = numberToWord(i);
let offtime = flow.get("offtime"+i)
let relayname = offtime != null ? global.get("N"+relayNumberWord) + "<br><font size='-1'>(turn off at: " + flow.get("offtime"+i) + ")" : global.get("N"+relayNumberWord)
// Prepare the message object
let msg = {
relayname: relayname,
payload: global.get(relayNumberWord)
};
// Assign the message to the correct index in the outputs array
outputs[i-1] = msg;
}
// Send all messages using node.send
node.send(outputs);
Die Relais EIngabe sieht gut aus:
Aber bei den Switchen sieht es so aus:
Ausserdem wird Relais 9+10 immer eingeschaltet.
Ich habe auch schon probiert die Schleife hoch zu setzen:
for (let i = 9; i < 23; i++) {
Aber es kommen von allen Relais folgende Fehler:
Ich habe die Ausgänge der Functions allerdings 9-14 bezeichnet, könnte das der Fehler sein?