NEWS
Zeitverzögerte Ausführung, wo den "stop" timeout setzen
-
Hallo Community,
ich suche nach einer Lösung einen Datenpunkt nach 5 Minuten auf TRUE zu setzen. Das Blockly-Script wird durch einen Temperatursensor getriggert, welcher auch während der 5 Minuten Zeitverzögerung weitere Trigger startet.
Ich möchte allerdings alle Laufenden timouts abbrechen, so dass der Datenpunkt "Schattenbedarf Ostwand Temperaturstufe 1" nur einmal gesetzt wird.
Wohin setzte ich die beiden Timeouts "timeout2" und "timeout3"?
Vielen Dank
Takahara -
@takahara
"Stufe 2" wird nur ausgeschaltet, aber nirgends eingeschaltet? -
@takahara Du solltest dafür eine Sperrvariable einbauen, wenn ich dich richtig verstanden habe.
-
@takahara sagte: Wohin setzte ich die beiden Timeouts "timeout2" und "timeout3"?
Prinzip:
-
@paul53 Hallo, ich hätte noch mal eine Frage.
Habe deinen Vorschlag umgesetzt und noch eine zweite Temperaturstufe hinzugefügt. Das Script funktioniert auch super. Hab hierfür nochmals vielen Dank!!!
Die beiden Beschattungsfunktionen werden nicht mehr benötigt, wenn die Sonne weiter gewandert ist und die Ostseite im Schatten liegt.
Ich hatte deshalb, noch mal einen weiteren Trigger eingesetzt, welcher die beiden Schattenstufen deaktiviert. Der Trigger ist der Datenpunkt "Schattenbedarf_Ostwand_Azimut", welcher im Laufe des Nachmittags FALSE wird.Wenn ich das Script richtig verstehe, sollte auch bei einem neuen Temperaturwert die erste Falls-Bedingung nicht mehr TRUE sein. Und somit sollten auch die Datenpunkte "Schattenbedarf Ostwand Temperatur 1 und 2" nicht mehr gesetzt werden. Da der Datenpunkt "Schattenbedarf Ostwand Azimut" FALSE ist.
Kannst du mir bitte noch einmal helfen, diese Funktion mit einzupflegen?Vielen Dank im Voraus.
-
@takahara sagte: helfen, diese Funktion mit einzupflegen?
Das hast du schon getan.
-
@paul53 Ja, das dachte ich auch. Allerdings bekomme ich um 13:04 noch zwei Push-Nachrichten, die eigentlich nicht sein sollten. Und wie gesagt, die Datenpunkte "Schattenbedarf Ostwand Temperatur Stufe 1" & "Schattenbedarf Ostwand Temperatur Stufe 2" sind immer noch TRUE.
Also werden beide Datenpunkte noch einmal gesetzt, auch wenn der Datenpunkt "Schattenbedarf Ostwand Azimut" FALSE ist.
VG Takahara
-
@takahara sagte: Also werden beide Datenpunkte noch einmal gesetzt
Diesen Trigger im gleich Skript verwenden und bei Wechsel auf false zusätzlich die 3 Timer stoppen.
-
@paul53 Meinst du das so mit dem Trigger und den Timer stops?
-
@takahara sagte: Meinst du das so mit dem Trigger und den Timer stops?
Nein, dann kann das Stoppen der Timer zu spät erfolgen.
Verwende den Trigger auf "Schattenbedarf_Ostwand_Azimut" im gleichen Skript wie die Steuerung von "Sufe1" und Stufe2" und stoppe dort die Timer.Wenn man auf zwei Datenpunkte triggert, kann man nicht
Wert
verwenden. -
@paul53 Hallo, Paul. Ich habe noch eine Verständnisfrage.
Hier noch einmal das vollständige Blockly-Script.
Und hier zu meiner Frage:
Falls der Temperaturwert > 22 ist, wird nur der "DelayOff" Timer gestoppt.
Falls die Temperatur >=22 ist wird geprüft ob der "DelayOff" timer bereits läuft. Falls dies nicht der Fall ist (z.B. beim ersten Temperaturwer <= 22), wird der DelayOff timer gestartet und nach 15 Minuten die Aktionen ausgeführt?
Ist das von meiner Seite richtig verstanden?
Hab vielen Dank
Takahara -
@takahara sagte: Falls die Temperatur >=22 ist
Falls die Temperatur <= 22 ist ...
@takahara sagte in Zeitverzögerte Ausführung, wo den "stop" timeout setzen:
wird der DelayOff timer gestartet und nach 15 Minuten die Aktionen ausgeführt?
..., wenn die Temperatur 15 Minuten lang <= 22 bleibt, da andernfalls vorher gestoppt wird.
Die Prüfung "nicht Verzögerung DelayOff" verhindert, dass der Timer mehrfach gestartet wird und sich deshalb nicht mehr stoppen lässt.