Hallo,
ich habe jetzt trotz Bemühen der Suchfunktion nichts gefunden. Falls es das Thema doch schon gibt, würde mir ein entsprechender Link helfen.
Frage: Wie kann ich einen CUxD-Timer anhalten und ihn mit seinem Stopp-Wert weiterführen?
Konkret: Ich möchte einen Timer durch ein Ereignis A unterbrechen lassen, um ihn dann durch ein Ereignis B oder durch dasselbe Ereignis A mit dem letzten Wert bis zum Ende oder bis zur nächsten Unterbrechung weiterlaufen zu lassen. Er soll also selbst bei einer Unterbrechung kein Ereignis triggern und folglich nicht auf Null gesetzt werden. Der CUxD-Timer soll erst dann ein Ereignis triggern, wenn er den Wert Null erreicht hat.
Wie ist da Eure Vorgehensweise?
Gruß,
Thorsten
Timer unterbrechen und weiterlaufen lassen
Moderator: Co-Administratoren
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Timer unterbrechen und weiterlaufen lassen
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Timer unterbrechen und weiterlaufen lassen
ich nutze so etwas zwar nicht aber man kann ja per Script den Timer abfragen und den Inhalt in eine Systemvariable schreiben. Wenn der Timer wieder laufen soll einfach den Timer mit dem Wert aus der Systemvariable füllen...
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Timer unterbrechen und weiterlaufen lassen
Ja, das ist durchaus eine Möglichkeit. Ich habe mich aber schon häufiger gefragt, warum der CUxD-Timer bei TIMER_STOP auf Null gesetzt wird und damit ein Ereignis triggert. So ganz erschließt sich mir die Logik dahinter nicht. Für mich wäre TIMER_STOP eher das Anhalten des Timers mit dem letzten Wert, um ihn dann wieder von dieser Stelle weiterlaufen lassen zu können. Für die jetzige TIMER_STOP-Funktion hätte ich eher ein TIMER_ZERO oder dergleichen implementiert, während man mit TIMER_RESET den Timer wieder auf den Ursprungswert setzen kann. Das hätte dann die Krücke mit der Systemvariablen vermieden.
Oder kann man evtl. auch ohne zusätzliche Systemvariable mit dem TS-Wert zum Ziel kommen?
Oder kann man evtl. auch ohne zusätzliche Systemvariable mit dem TS-Wert zum Ziel kommen?
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Timer unterbrechen und weiterlaufen lassen
Eine ähnliche Diskussion gab es vor längerer Zeit bereits. Damals war Uwe auch an der Unterhaltung beteiligt.
Leider finde ich das Thema bzw. den Link gerade nicht.
Damals wurde auch der Wunsch nach einer "Pause" Funktion geäußert. Uwe wollte darüber nachdenken und die Möglichkeiten dazu prüfen.
Leider finde ich das Thema bzw. den Link gerade nicht.
Damals wurde auch der Wunsch nach einer "Pause" Funktion geäußert. Uwe wollte darüber nachdenken und die Möglichkeiten dazu prüfen.
Viele Grüße!
Jörg
Jörg
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Timer unterbrechen und weiterlaufen lassen
Lt Handbuch (allerdings cuxd V1.5) wir mit TIMER_STOP kein Event ausgelöst.
Abbruch des Timers → Tastendruck auf WebUI
Dabei wird kein Timer-Event ausgelöst!
Ich nutze
Dadurch wird auch nicht getriggert. Ist aber lt. Handbuch das gleiche wie TIMER_STOP
Abbruch des Timers → Tastendruck auf WebUI
Dabei wird kein Timer-Event ausgelöst!
Ich nutze
Code: Alles auswählen
dom.GetObject("CUxD.CUX2800001:1.TIMER_SET").State("0");
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Timer unterbrechen und weiterlaufen lassen
Habe noch diesen Thread gefunden:
viewtopic.php?f=37&t=36829
Wenn ich dort alles richtig verstehe löst TIMER_STOP Programme aus wenn als Trigger TIMER_GET <= 0 benutzt wird. Was ich nicht mache
viewtopic.php?f=37&t=36829
Wenn ich dort alles richtig verstehe löst TIMER_STOP Programme aus wenn als Trigger TIMER_GET <= 0 benutzt wird. Was ich nicht mache
- uwe111
- Beiträge: 4820
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Timer unterbrechen und weiterlaufen lassen
Dabei musst Du wissen, dass es relative, absolute und mehrfache CUxD-Timer mit und ohne Zufallsanteil gibt. So ist diese Frage nicht allgemein zu beantworten.dtp hat geschrieben:Frage: Wie kann ich einen CUxD-Timer anhalten und ihn mit seinem Stopp-Wert weiterführen?
Ich vermute mal, bei Deiner Frage geht es um die einfachen relativen Timer mit bzw. ohne zufälligen Anteil. Da ist die Vorgehensweise so:
1. aktuellen Timerwert mittels TIMER_GET auslesen
2. TIMER_STOP senden -> Timer ist angehalten
wenn es dann weitergehen soll...
3. TIMER_SET auf zuvor gespeicherten Timerwert setzen
Dabei wurde und wird kein TIMER_EVENT Ereignis getriggert! Im Systemprotokoll der CCU kannst Du das ganz einfach nachprüfen.dtp hat geschrieben: Ich habe mich aber schon häufiger gefragt, warum der CUxD-Timer bei TIMER_STOP auf Null gesetzt wird und damit ein Ereignis triggert.
Mittlerweile sollte die aktuelle ReGaHss das TIMER_EVENT auch richtig triggern. Ansonsten sende bitte ein Beispiel (wo es nicht funktioniert) an Jens Maus zur Fehlersuche.
Das ist keine Krücke. Zusätzliche Datenpunkte würden m.E. das Handling nur verkomplizieren. Und wer würde später ausser Dir dann noch verstehen, dass z.B. TIMER_GET einen Wert zurückliefert, aber der Timer gar nicht mehr läuft? Deshalb halte ich die Funktion auch so einfach wie möglich. Es gibt beim Timer schon genug individuelle Möglichkeiten und Datenpunkte. Die Vorgehensweise für eine Pause-Funktion bei einfachen relativen Timern habe ich ja am Anfang aufgezeigt.dtp hat geschrieben:Für die jetzige TIMER_STOP-Funktion hätte ich eher ein TIMER_ZERO oder dergleichen implementiert, während man mit TIMER_RESET den Timer wieder auf den Ursprungswert setzen kann. Das hätte dann die Krücke mit der Systemvariablen vermieden.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Timer unterbrechen und weiterlaufen lassen
Vielen Dank für Eure sehr hilfreichen Hinweise. Es ist in der Tat so, dass ich meine CUxD-Timer immer auf TIMER_GET <= 0 triggere, so dass sie eben auch mit TIMER_STOP auslösen. Der Grund ist der rot hinterlegte Hinweis im Manual, dass TIMER_EVENT zum Triggern mit Vorsicht zu genießen sei. Wenn diese Bedenken mittlerweile ausgeräumt sind, dann kann ich das ja mal ändern.
Meine Logik sagt mir halt, dass TIMER_STOP den Timer eigentlich mit dem letzten Wert anhalten müsste. Unter STOP verstehe ich persönlich kein definiertes Setzen auf den Wert Null.
Gruß,
Thorsten
Meine Logik sagt mir halt, dass TIMER_STOP den Timer eigentlich mit dem letzten Wert anhalten müsste. Unter STOP verstehe ich persönlich kein definiertes Setzen auf den Wert Null.
Werde ich dann mal so umsetzen. Danke.uwe111 hat geschrieben: Ich vermute mal, bei Deiner Frage geht es um die einfachen relativen Timer mit bzw. ohne zufälligen Anteil. Da ist die Vorgehensweise so:
1. aktuellen Timerwert mittels TIMER_GET auslesen
2. TIMER_STOP senden -> Timer ist angehalten
wenn es dann weitergehen soll...
3. TIMER_SET auf zuvor gespeicherten Timerwert setzen
Gruß,
Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.