NEWS
Blockly, Problem beim Stoppen eines Intervall und Timeout
-
Hallo an die Logiker unter euch,
folgendes Script erinnert mich daran, nach 40 Minuten die Fenster zu schließen, das funktioniert soweit auch wunderbar.
Wenn ich nun das/die Fenster schließe wird die Sprachausgabe und die Telegram-Meldung nicht gestoppt, obwohl der Wert der ID "zählen_Fenster.anzahlFensterauf" = 0 ist.
Die Sprachausgabe beschränkt sich auch nur auf den Teil: "Folgende Fenster sind länger als 40 Minuten offen", da korrekt auch kein offenes Fenster mehr erkannt wird.
Stoppen lässt sich das Ganze nur, wenn ich das Script ausschalte bzw. neu starte.
Wenn ich zum Testen einen kürzeren Timeout von 5 Minuten nehme, funktioniert alles wie es soll?!?
Liegt hier das Problem in der längeren Timeout-Zeit von 40 Minuten oder habe ich generell einen Fehler im Scipt?
-
ich würde den Logikbaustein so einstellen, anstatt des zweiten "falls --> mache":
-
Hallo Rudi,
so hatte ich es zuerst, damit ging's auch nicht, daher der Versuch mit dem zweiten falls --->mache.
-
@Hicks
Bei jeder Aktualisierung wird, solange mindestens ein Fenster geöffnet ist, ein neuer Timeout gestartet, da der/die bereits laufenden nicht angehalten werden.
Da kommt mit der Zeit was zusammen, wenn ca. Alle 3 Minuten aktualisiert wird...
Besser stoppst du unmittelbar vor setzen des tomeouts den gesetzten.
Wie mein Vorschreiber bemerkt auch die Bedingungen zudammenfassen mit wenn dann - sonst.
Ausserdem würde ich triggern auf geändert, nicht auf aktualisiert. -
eventuell kannst du ja von meinem Script was für dich ableiten:
-
@Hicks
mach mal den Trigger auf wurde geändert und die beiden stop (timout und intervall) setze mal über das erste falls mache.
Das zweite falls mache mit samt Inhalt löschen.PS: allerdings funktioniert es dann nur wenn beide Bedingungen erfüllt sind, also mindestens ein Fenster auf und die Temperatur kleiner als 17 Grad ist. Wenn es wärmer als 17 Grad ist sollte dann keine Ansage kommen, auch wenn Fenster auf sind.
Du könntest/solltest einen zweiten Trigger (Deinen Temperatursensor) mit einbauen, dann kommt auch eine Ansage wenn Du z.B. ein Fenster, oder auch mehrere, z.B. bei 20 Grad öffnest (dann passiert noch nichts) und dann irgendwann die Temperatur unter 17 Grad fällt (aber die Fenster z.B. immer noch auf sind) eine Ansage.
Nur mit dem Fenstertrigger käme nur eine Ansage wenn Du den Status der Fenster änderst.
Also Sinn würden machen beides zu triggern. -
@dslraser, @all,
danke für den Input, bin leider heute erst zum Testen gekommenen, sorry.
Ich habe das Script jetzt wie @dslraser schrieb angepasst.
Komischerweise verhält es sich jetzt so, dass bei einem längeren Timeout das Script nicht funktioniert (hier als Test 10 Min.). Bei Zeitangaben bis zu einer Minute läuft's einwandfrei?!?
Habe ich noch einen Fehler im Script?