Hmm der Fehler sitzt wohl an der Tastatur ich werde mein script nochmal gründlich überschauen.
Da dies ziemlich Gross ist haben ich zum Testen der timer und time reset mal ein einfacheres erstellt mit 2 scenarien:
timer_1 wird gestartet innerhalb einer function und reset über eine 2te function
Timer_2 wird gestartet innerhalb einer Function und reset innerhalb der IF abfrage
Beide timer und deren resets funktionieren wie erwartet, da hab ich mich bei dem anderen script wohl in der login verhauen.
Danke euch !
Mein Code wer es testen/nachspielen möchte :
var timeout_2, timeout_1;
/**
* TimeOut_Test_2 mit reset außerhalb der function
*/
function TimeOut_Test_2() {
timeout_2 = setTimeout(function () {
console.log('TimeOut_Test_2 activiert nach 10 sekunden');
}, 10000);
}
/**
* TimeOut_Test_1 Timer innerhalb einer function
*/
function TimeOut_Test_1() {
timeout_1 = setTimeout(function () {
console.log('TimeOut_Test_1 activiert nach 10 sekunden');
}, 10000);
}
/**
* TimeOut_Test_1 reset innerhalb einer function
*/
function TimeOut_Test_1_Clear() {
(function () {if (timeout_1) {clearTimeout(timeout_1); timeout_1 = null;}})();
console.log('TimeOut_Test_1_deactiviert ');
}
on({id: "javascript.1.Test_Switch"/*Test_Switch*/, change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("javascript.1.Test_Switch").val == true) {
console.log('Timeout aktiviert starte nach 10 sekunden');
TimeOut_Test_1();
TimeOut_Test_2();
} else {
(function () {if (timeout_2) {clearTimeout(timeout_2); timeout_2 = null;}})();
console.log('Timeout deactivieren');
TimeOut_Test_1_Clear();
}
});
Log Ausgabe :
javascript.1 2018-04-25 13:26:08.036 info script.js.common.palletkachel.Test_Script_Timer: TimeOut_Test_1_deactiviert
javascript.1 2018-04-25 13:26:08.035 info script.js.common.palletkachel.Test_Script_Timer: Timeout deactivieren
javascript.1 2018-04-25 13:26:04.385 info script.js.common.palletkachel.Test_Script_Timer: Timeout aktiviert starte nach 10 sekunden