Fragen zum Baustein Delay / Verzögerung

Der Baustein Verzögerung soll den Status "Triggered" und "Idle" liefern.

Verhalten des Bausteins:
Liegt die Bedingung für die Auslösung der Verzögerung vor, wird nach der eingestellten Zeit in Sekunden der Status "Triggered" gesetzt. Dabei ist zu beachten, dass die eingestellte Zeit immer wieder von neuem abläuft, bis die Bedingung nicht mehr vorliegt. Der Status "Triggered" wird nur für eine kurze Zeit gehalten. Anschließend wechselt er nicht in den Status "Idle". Im Grunde liegt nach dem Löschen des Status "Triggered" kein Status mehr vor. Der Staus "Idle" wird nicht gesetzt. Denn wenn man den Status "Idle" für z.B. für eine Benachrichtigung auswählt, wird diese nie gesendet.
https://dashboard.conradconnect.de/projects/public/5ba6326b220a8040e0dfb445

  1. Warum wird der Status "Idle" nicht gesetzt?
  2. Warum geht der Baustein erst in den Status "Triggered" wenn die Bedingung nicht mehr vorliegt?
  3. Wie lange wird der Status "Triggered" gehalten?
  4. Kann der Baustein durch Conrad Connect so erweitert werden, dass die Verzögerung nach erstmaligem Vorliegen der Bedingung und nach Ablauf der Zeit kurzzeitig in den Status "Triggered" dann in "Idle" und bei erneuter oder weiterhin vorliegender Bedingung der Ablauf von vorne beginnt?

Ich kann mir viele Anwendungsbeispiele durch Realisierung der Frage 4 vorstellen. Sicherlich gibt es auch Anwendungsbeispiele für das aktuelle Verhalten des Bausteins, aber ich würde das Verhalten so nicht vermuten.

Answers

  • ChristianChristian admin Administrator, Moderator Posts: 1,687 admin

    Hallo @MarkusK, ich schaue nächste Woche mit den Technikkollegen genauer auf Deine Anfrage. Melden uns dann hier zurück.

  • MarcusKMarcusK Member Posts: 8

    @Christian said:
    Hallo @MarkusK, ich schaue nächste Woche mit den Technikkollegen genauer auf Deine Anfrage. Melden uns dann hier zurück.

    Danke!

  • ChristianChristian admin Administrator, Moderator Posts: 1,687 admin
    edited September 2018

    Hallo @MarkusK, kurze Rückmeldung wie versprochen. Zu 1) Wir überarbeiten das Delay-Element derzeit, um dessen Handhabung zu vereinfachen. 2) Könnte Deine Beobachtung nicht einfach daran liegen, dass während die Delay-Einheit startet zu zählen, die Bedingung mittlerweile nicht mehr erfüllt wird? Getriggert wird dann ja trotzdem nach Ablauf der Zeit. 3) Auch das checken wir noch mal. 4) Bin ich bei Dir, wäre so wie von Dir beschrieben sinnvoll.
    Wir melden uns dann hier erneut zurück.

  • MarcusKMarcusK Member Posts: 8

    Hallo @Christian, vielen Dank für die Rückmeldung.
    Zu 1: das sind gute Neuigkeiten

    Zu 2: deine Frage beantworte ich mit ja. Das Verhalten der Delay-Einheit habe ich genau so beobachtet und oben beschrieben. Frage 2 habe ich gestellt, weil die Delay-Einheit nicht in den Status Triggered geht solange die Bedingung vorliegt.
    Ein Beispiel zur Verdeutlichung:
    eingestellte Zeit 300s > Bedingung liegt vor > Countdown startet> nach 60s liegt die Bedingung immer noch oder erneut vor > Countdown beginnt wieder bei 300s
    Wird das gewünschte Verhalten aus Frage 4 umgesetzt, sind die Fragen 1 und 2 erledigt.

    Zu 3: deinen Antworten entnehme ich, dass das Idle-Problem abgestellt werden soll, daher möchte ich Frage 3 erweitern. 3. Wie lange wird der Status "Triggered" und "Idle" gehalten?
    Verdeutlichung an zwei verschiedenen Abläufen:
    a. eingestellte Zeit 300s; es liegt kein Status vor > Bedingung liegt vor > Countdown läuft ab > Triggered gesetzt (wie lange?) > Idle gesetzt (wie lange?) > Ablauf beginnt von vorn oder
    b. eingestellte Zeit 300s; es liegt der Status Idle vor > Bedingung liegt vor > Countdown läuft ab > Triggered gesetzt (wie lange?) > Idle gesetzt und gehalten > Ablauf beginnt von vorn
    Ablauf b wäre hier das erwartete Verhalten.

    Zu 4: Vielen Dank für deine Zustimmung. Um Missverständnisse zu vermeiden, folgend ein Beispiel zum gewünschten Verhalten
    eingestellte Zeit 300s; es liegt der Status Idle vor > Bedingung liegt vor > Countdown startet > nach 60s liegt die Bedingung immer noch oder erneut vor > der Countdown läuft weiter (240s) > Triggered gesetzt (Dauer 1s) > Idle gesetzt und gehalten > Ablauf beginnt von vorn

    Ich freue mich auf ein Update :)

  • ChristianChristian admin Administrator, Moderator Posts: 1,687 admin

    Hallo @MarkusK, erst mal Danke für die (empirische) Mühe. Das Verzögerungselement enthält jetzt nicht mehr den Status IDLE, ganz einfach um die Handhabung zu erleichtern. Liegt die Eingangsbedingung vor, wird mit der eingestellten Verzögerung (kurz) getriggert um die gewünschte Aktor-Aktion auszulösen. Triggered vs. Idle ist hier nicht mit ON vs. OFF gleichzusetzen. Ich mache zum Delay-Sensor demnächst einen eigenen Thread auf, wo ich das Verhalten noch einmal konkret darlegen werde. Vielleicht könntest Du den gewünschten Anwendungsfall mal ganz lebensnah beschreiben, so dass wir nach einem Workaround für Dich suchen können.

  • MarcusKMarcusK Member Posts: 8

    Hallo @Christian, die Löschung des Status Idle ist nicht die erwartete Lösung des Problems, zumal sich nichts am Verhalten geändert hat. Der Countdown läuft erst ab, wenn die Bedingung nicht mehr vorliegt.
    Ich investiere gerne Zeit und Mühe solange ich denke, dass es sich für mich und andere lohnt bzw. ich mein Ziel erreichen kann. Danke für die Bestätigung.
    Gäbe es eine ausführliche Beschreibung/Dokumentation zur Funktionsweise aller Elemente in Projekten, blieben den Usern viel Tüftelei und Rückfragen erspart. Erschwert wird die eigene Recherche durch ungewolltes Verhalten der Elemente. Mal machen sie genau das Erwartete und dann wieder nicht - die Anzahl an möglichen Fehlerquellen ist dabei groß.

  • MarcusKMarcusK Member Posts: 8

    Ursprünglich wollte ich den Statuswechsel eines Tür-/Fensterkontaktes in einem Google Sheet protokollieren. Im Aktor „Google Sheet“ gibt es unter „Beschränken auf“ keine Auswahlmöglichkeit „Statuswechsel“. Die Auswahl „ein Mal pro Stunde“ war mir zu wenig und bei „immer“ erfolgt alle 30s ein Eintrag – das ist zu viel. Also dachte ich an den Aktor „Delay“ um den Intervall selber zu wählen. Das hat aus zuvor beschriebenen Gründen nicht geklappt.

    Jetzt werde ich versuchen, den „Delay“ als Statuswechsel zu benutzen.
    Fenster zu (Meldung alle 30s) > Delay (120s) > Bedingung liegt weiterhin vor > Countdown startet alle 30s erneut > Fenster auf > Countdown läuft ab > Google Sheet (open)
    Parallel dazu
    Fenster auf (Meldung alle 30s) > Delay (120s) > Bedingung liegt weiterhin vor > Countdown startet alle 30s erneut > Fenster zu > Countdown läuft ab > Google Sheet (closed)

  • ChristianChristian admin Administrator, Moderator Posts: 1,687 admin

    Hallo @MarcusK, zunächst mal Danke für die Treue in dieser Angelegenheit. Wie versprochen klemme ich mich noch hinter die Dokumentation zum Verzögerungssensor. Wir haben noch mal im Team auf deine Anforderung geschaut. Das ist so leider nicht realisierbar. Was du hier benötigen würdest, ist eine Toggle-Funktion, sprich ein Element, welches explizit auf Veränderungen anspricht (Fenster auf, Fenster zu). Da ist dann ja auch keine Verzögerung mehr notwendig. Wichtig zum Verständnis des Verzögerungsbausteins ist, dass er nichts anderes macht, als im Moment des Vorliegens der Eingangsbedingung den Countdown zu starten und im Anschluss (kurz) den gewünschten Aktor zu triggern. Es ist irrelevant ob die Eingangsbedingung nach Ablauf des Countdowns noch vorliegt oder nicht, es wird getriggert.

  • ChristianChristian admin Administrator, Moderator Posts: 1,687 admin
    edited October 2018

    Sowie kurzer Nachtrag: Du kannst ein erstelltes Projekt immer veröffentlichen (private Daten wie Email-Adressen werden dabei nicht übertragen), dann können wir sie direkt einsehen und auch besser besprechen. Was ich mich gerade frage: Wäre die (schnelle) Lösung zu Deinem Problem nicht, dass Du ein Google Script erstellen lässt, dass Dir alle unnötigen Einträge aus dem Sheet wieder löscht?

Sign In or Register to comment.