NEWS
SOLVED [gelöst]Position für Timeout ?
-
@BBTown sagte in Position für Timeout ?:
@MartinK
Wenn ich deine Fragestellung richtig verstanden habe, dann sollte die Lösung so aussehen
Das Problem ist, wenn ich den Timeout so einbaue bekomme ich immer wieder den Fehler in dem Skript angezeigt
-
@MartinK sagte in Zeile 8:
Wartezeit für Spannungsbereich
Der Variablenbezeichner enthält unzulässige Zeichen: Leerzeichen. Siehe Unterschied zu Zeile 1. Ändere den Bezeichner in Wartezeit_fuer_Spannungsbereich.
-
@MartinK
das kann ich nicht nachvollziehen ...und ohne die beiden Timer Einträge kommt kein Fehler?
Was ist wenn Du die beiden anderen Trigger mal aus dem Script raus nummst, so dass Du dich auf einen Anwendungsfall konzentrieren kannst?Macht es einen Unterschied, wenn Du oben im Trigger anstelle von "Update" dort "egal" auswählst? (kann ich mir aber eigentlich nicht vorstellen)
-
@BBTown Auch ohne die beiden unteren Anwendungsfälle erscheint der Fehler, und eine Änderung der Trigger Einstellung auf "egal" macht auch keinen unterschied... ohne den Timeout läuft das Skript super.... ??
-
@MartinK
Was steht im generierten Javascript-Code (Zeile 8 ) ? -
@paul53 Leider bin ich noch nicht so der Nerd in Sachen Blockly & Co... Welcher Javaskript -code (Zeile 8 ) ist denn gemeint??? Der Fehler der im LOG steht in der Zeile 8 nach dem ausführen des Skriptes ?
-
@paul53 Da ist der Fehler in Zeile 8
-
@MartinK sagte:
Welcher Javaskript -code (Zeile 8 ) ist denn gemeint???
Im Blockly-Editor kann man rechts oben (links neben dem Schraubenschlüssel) in die Javascript-Ansicht umschalten, in der der aus Blockly erzeugte JS-Code mit Zeilennummer angezeigt wird. Diesen Code poste bitte ohne die letzte Zeile in Code tags (copy & paste).
-
@paul53 Hier ist der Code
var Wartezeit_f_C3_BCr_Spannungsbereich; // Shelly Waschmaschine on({id: 'shelly.0.SHPLG-S#04160D#1.Relay0.Power', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (Wartezeit für Spannungsbereich) {clearTimeout(Wartezeit für Spannungsbereich); Wartezeit für Spannungsbereich = null;}})(); // Spannungsbereich **Waschmaschine läuft!** - ON if (getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val > 10) { setState("waschmaschine.0.Waschmaschine-Läuft!"/*waschmaschine.0.Waschmaschine-Läuft!*/, true); setStateDelayed("waschmaschine.0.Waschmaschine_FERTIG!-Schalter"/*Waschmaschine_FERTIG!-Schalter*/, false, 1000, false); } // Spannungsbereich **Waschmaschine Fertig!** - ON if (getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val > 2 && getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val < 6) { Wartezeit für Spannungsbereich = setTimeout(function () { setState("waschmaschine.0.Waschmaschine-Läuft!"/*waschmaschine.0.Waschmaschine-Läuft!*/, false); setState("waschmaschine.0.Waschmaschine_FERTIG!-Schalter"/*Waschmaschine_FERTIG!-Schalter*/, true); }, 10000); } });
-
@MartinK sagte in Zeile 8:
Wartezeit für Spannungsbereich
Der Variablenbezeichner enthält unzulässige Zeichen: Leerzeichen. Siehe Unterschied zu Zeile 1. Ändere den Bezeichner in Wartezeit_fuer_Spannungsbereich.
-
@paul53 Alles klar !!! Vielen Dank ! Das war der Fehler !