Hallo Stefan
@S. Kolbinger,
danke für deine Erklärung!
Ich vermute, du erwartest hier eine allgemeine Telegramm-/Meldungsverzögerung
Ja, genau!
Das habe ich aber wegen nicht vorhersagbarem Speicherbedarf (z.B. bei hoher Telegramm-Rate und langer Verzögerungsdauer) nicht implementiert.
Besteht das Problem denn nicht auch bei schnellen Flankenwechseln und langer Verzögerungsdauer? Oder wird ein mehrfacher Flankenwechsel während der Verzögerungszeit einfach gar nicht beachtet?
Wäre das nicht auch eine Möglichkeit für eine einfache Verzögerungsfunktion ohne Flankenwechsel? D.h. während einer laufenden Verzögerungszeit lösen weitere Trigger nicht selber wieder einen Timer aus, sondern der eine laufende Timer wird einfach um die Verzögerungszeit verlängert.
Ich denke, es gibt beide Anwendungsfälle:
1) Jeder Trigger soll für sich eine Verzögerungszeit auslösen und nach Ablauf der Zeit auf den Ausgang gehen => mögliches Speicherproblem
2) Wenn die Verzögerungszeit läuft, sollen weitere Trigger nur die Verzögerungszeit verlängern. Am Ende der (ggf. verlängerten) Verzögerungszeit kommt nur 1 x die Meldung auf den Ausgang, egal wie viele Trigger zwischenzeitlich erfolgt sind. Also im Hintergrund ein re-triggerbarer Timer.
Der Fall 2) würde für mich hier völlig ausreichen (weitere Trigger während der Verzögerungszeit sind hier eher theoretisch).
Kannst du bitte nochmal die Funktionsweise kurz erklären, wie sich die Logik genau verhalten soll.
Unter bestimmten Voraussetzungen soll das Garagentor in die Lüftungsposition fahren. Die entsprechende KNX-GA am Ausgang verarbeitet nur "EIN"-Telegramme. Eine Voraussetzung ist, dass das Garagentor geschlossen ist ("Status geschlossen" ist einer der Eingänge). Problem ist, dass der Garagentorantrieb (bzw. das KNX-Modul) nach einem gerade erfolgten Schließvorgang ("Status geschlossen" am Eingang geht auf TRUE) ein paar Sekunden braucht, um weitere Telegramme zu verarbeiten. Kommt also das Lüftungs-Telegramm sofort, wird es nicht verarbeitet. Deshalb soll dieses Telegramm am Ausgang immer erst mit 10 Sekunden Verzögerung gesendet werden.
Eventuell kann man das leicht mit einem der Timer-Bausteine lösen.
Ja, ich denke wenn ich einfach einen (re-triggerbaren) Timer Baustein anlege und diesen mit dem Ausgang der eigentlichen Logik füttere, sollte es funktionieren. Ich probiere es mal. Und damit wäre mir auch erstmal geholfen
