Antworten
Nov 17, 2023 - 14:24
Nov 17, 2023 - 15:16
Konfiguration:
V5+ / Firmware 1.2.7 / Neo Creator 3.1.0
Hallo zusammen,
bei meinen ersten Versuchen Javascript zu nutzen, muss ich leider feststellen, dass meine Scripts im Skripteditor problemlos starten und laufen. Rufe ich diese in einer Task auf, passiert leider nichts.
Hier beispielhaft eine der Testtasks:
Diese Task füllt den TestString01 mit „=========================“.
Danach sollte das Skript „Zeit zyklisch“ den String mit der aktuellen Uhrzeit füllen.
Im Skripteditor funktioniert alles; aus der Task heraus wird das Skript offensichtlich nicht gestartet.
Hat jemand eine Idee?
Im Voraus vielen Dank
Gerd
Haben Sie die gleiche Frage? Dieser Frage folgen
Nov 17, 2023 - 14:24
Nov 17, 2023 - 15:16
Von
Mein Skript sieht wie folgt aus:
function startLoop() {
// Starte die Dauerschleife
loop();
}
function OutputTime (myCount) {
a = new Date();
b = a.getHours(); c = a.getMinutes(); d = a.getSeconds();
if(b < 10){b = '0'+b;}
if(c < 10){c = '0'+c;}
if(d < 10){d = '0'+d;}
zeit = b+':'+c+':'+d;
console.log("Request: "+myCount +" von " + zeit);
executeDeviceCommand(
"Test",
"TestString01",
{"value":"setValue","ext":"Request: "+myCount +" von " + zeit},
function(err) {
err && console.error(err.message);
}
);
}
function loop() {
// Überprüfe, ob die Schleife weiterlaufen soll
if (!run) {
console.log("Schleife abgebrochen");
return;
}
// Ausgabe Zeit
OutputTime(count);
count=count+1;
setTimeout(() => {
// Überprüfe erneut, ob die Schleife weiterlaufen soll
if (!run) {
console.log("Schleife abgebrochen");
return;
}
loop();
}, 10000); // 10000 Millisekunden entsprechen 10 Sekunden
}
// Beispielaufruf: Starte die Schleife
let run = true;
let count = 0;
startLoop();
// Beispielaufruf: Setze die Variable 'run' nach 30 Sekunden auf false, um die Schleife zu stoppen
setTimeout(() => {
run = false;
}, 30000); // 30000 Millisekunden entsprechen 30 Sekunden
Neuen Kommentar hinzufügen