NEWS
Java Script Engine v.4.1.3 - Blockly - Timeout - timeout is not defined
-
Hi,
ich nutze aktuell die JS Engine 4.1.3.
Wenn ich dort in einem Blockly Script Timeout nutze, so "fehlt" am Anfang eine Definition für Timeout, das wiederum führt zum Fehler "Error in callback: ReferenceError: timeout is not defined".
So sieht das Blockly Script aus:
Der entsprechende js Code sieht wie folgt aus:
on({id: 'shelly.0.SHSW-1#32786F#1.Relay0.Switch', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("shelly.0.SHSW-1#32786F#1.Relay0.Switch").val == true && getState("zigbee.0.00158d0001ad6a7d.occupancy").val == true) { (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); } else if (getState("zigbee.0.00158d0001ad6a7d.occupancy").val == false) { (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { setState("shelly.0.SHSW-1#32786F#1.Relay0.Switch"/*Switch*/, false); }, 60000); } }); code_text
Das stop Timeout kommt vor der eigentlichen Tiemout Definition. Ich habe den code in JS umgewandelt und vorab die Variable definiert:
var timeout;
Dann läuft es.
Ist das ein Problem der JS Engine 4.1.3 ? -
Bitte Github issue auf machen
-
@reelfan sagte in Java Script Engine v.4.1.3 - Blockly - Timeout - timeout is not defined:
on({id: 'shelly.0.SHSW-1#32786F#1.Relay0.Switch', change: "ne"}, function (obj) {
Erledigt:
https://github.com/ioBroker/ioBroker.javascript/issues/334 -
In Version 4.1.4 ist das u.a. das Problem mit dem Timeout behoben, danke.