NEWS
[gelöst] Zeitverzögerung und Timer
-
Hallo Gemeinde,
ich muss doch noch mal ran und die Funktion ändern.Ein Zigbee Feuchtesensor übermittelt die Feuchtigkeit. Da es sich um ein träges System handelt muss ich Grenzen einbauen. Dieser Wert steuert eine Smart-Steckdose die einen kleinen Ventilator ansteuert der aus einem Behälter Luftfeuchte in den Humi transportiert.
Ich möchte, das bei Unterschreitung eines Wertes ein Timer läuft (soll nicht sofort den Ausgang aktivieren), dann bei weiterhin Unterschreitung des Wertes den Ausgang für eine feste Zeit (30s) aktivieren und den Ausgang wieder ausschalten. Danach soll sich alle 5min der Ausgang bei weiterhin Unterschreitung des Grenzwertes der Ausgang wieder für 30s aktivieren.
Danke euch!! ich werd mal was versuchen, hab das aber mit den Timouts noch nicht wirklich kapiert, aber jetzt muss das werden
Es gibt auch noch einen weiteren Faktor, wenn die Türe geöffnet ist (Zigbee Sensor), da soll der Feuchter nicht starten bzw. laufen. Ev. wäre eine Situation noch, dass beim Schließen der Tür der Ausgang für 10s geschaltet wird.
-
ich beginne mit dem verzögerten setzen einer Variable, ist das OK ?
-
setzen und löschen der Variable
als nächstes würde ich eine parallel Abarbeitung mit der Variable machen
30s Ausgang aktivieren, 5min warten -
@Humidor
gib mir 20 Minuten.. Dein Ansatz kann so nicht gehen.Alternativ - teamspeak und anydesk.
A.
-
Versuch mal so.
Da ich die entsprechenden Datenpunkte nicht habe hab ich die nicht ausgewählt.Funktionsweise:
ein Trigger auf den Türkontakt überwacht diesen. Bei Tür auf werden die Timeouts zum abschalten der Pumpe angehalten - nicht aber das Intervall das die 5 min. Wiederholung durchführt. Dieses wird automatisch beim überschreiten der Grenze deaktiviert.
Der Trigger auf den Feuchtewert reagiert auf Wertänderungen.
Ist der Wert unter dem Schwellwert werden sowohl die 30 s Verzögerung für die Pumpe als auch das 5 min. Intervall gelöscht.
Ist der Wert über dem Schwellwert, dann wird zunächst geschaut ob der vorherige wert darunter war (dann läuft aktuell nichts). Wenn ja, dann wird der Pumpenablauf gestartet.A.
(hinterm spoiler auch als XML zum import)
-
@Asgothian
Danke!!
schön langsam verstehe ich dein Blocky, beim unteren Kommentar hat mich der Text verwirrt (copy-paste) -
(bei mir is Deutsch), stimmt das für die Feuchtigkeit?
-
@Humidor sagte:
stimmt das für die Feuchtigkeit?
Nein, so ist die Bedingung für Befeuchten nie erfüllt. Außerdem darf man timeAktiv nicht stoppen, weil dann das Ausschalten verhindert wird. Die erste Verzögerung beträgt 6 Minuten (1 + 5 Minuten).
Versuche es mal so: -
@paul53
Danke!wie kann ich den Export hier runterladen?
was ich nciht verstehe ist, wie ich im Blocky den "Wert" (rot), "Tür_offen" (rot) und "timeout" (rot) so auswählen kann ??
und was bewirkt "timeout" im sonst falls Zweig? -
@Humidor sagte:
"Wert" (rot), "Tür_offen" (rot) und "timeout" (rot)
Wert findet man unter "Trigger"
Tuer_offen ist eine selbst erstellte Variable
timeout ist eine Variable, die mit "Ausführen timeout" erstellt wird.@Humidor sagte in Zeitverzögerung und Timer:
was bewirkt "timeout" im sonst falls Zweig?
Es verhindert, dass weitere Timer gestartet werden, wenn bei Wertänderungen unter 68 erneut getriggert wird.
@Humidor sagte in Zeitverzögerung und Timer:
wie kann ich den Export hier runterladen?
Copy (^C) aus dem Forum & Paste (^V) in den Blockly-Import.
-
@paul53 sagte in Zeitverzögerung und Timer:
@Humidor sagte:
"Wert" (rot), "Tür_offen" (rot) und "timeout" (rot)
Wert findet man unter "Trigger"
Tuer_offen ist eine selbst erstellte Variable
timeout ist eine Variable, die mit "Ausführen timeout" erstellt wird.@Humidor sagte in Zeitverzögerung und Timer:
was bewirkt "timeout" im sonst falls Zweig?
Es verhindert, dass weitere Timer gestartet werden, wenn bei Wertänderungen unter 68 erneut getriggert wird.
@Humidor sagte in Zeitverzögerung und Timer:
wie kann ich den Export hier runterladen?
Copy (^C) aus dem Forum & Paste (^V) in den Blockly-Import.
gefunden!
ist im falls wenn der Timeout bei 0 erfüllt oder bei einem Wert?
-
@Humidor sagte:
gefunden!
Der untere Trigger-Datenpunkt ist falsch: Es muss die Tür sein.
@Humidor sagte in Zeitverzögerung und Timer:
wenn der Timeout bei 0 erfüllt oder bei einem Wert?
nicht timeout ist erfüllt, wenn timeout den Wert null (wird bei stop timeout gesetzt) oder den Wert undefined (wird bei Scriptstart gesetzt) enthält. Wenn der Timer gestartet ist, enthält die Variable timeout ein Timer-Objekt.
Anmerkung: Anstelle von nicht timeout könnte man auch auf vorheriger Wert > 68 prüfen, so wie es @Asgothian vorgesehen hatte.
-
so richtig ?
-
@Humidor sagte:
so richtig ?
Der Trigger ja, die Abfrage nicht: vorheriger Wert > 68 (vorheriger Wert unter "Trigger").
Die Bedingung Wert <= 68 ist bereits im sonst enthalten. -
@paul53
das mit dem "vorherigen Wert" verstehe ich nicht, soll das eine Zwischenvariable sein? -
@Humidor sagte:
das mit dem "vorherigen Wert" verstehe ich nicht, soll das eine Zwischenvariable sein?
Nein, das ist eine Eigenschaft des Trigger-Datenpunktes (deshalb unter Blöcke "Trigger")
-
@paul53
das hab ich nicht ?
-
-
@paul53
gefunden, danke!aber kapier ich nicht was der vorherige Wert mit der Abfrage zu tun hat?
-