CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
rentier-s
Beiträge: 376
Registriert: 19.06.2017, 09:24
Hat sich bedankt: 20 Mal
Danksagung erhalten: 67 Mal

CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Beitrag von rentier-s » 07.04.2022, 09:39

Falls es jemand gebrauchen kann:

Ich habe zwei Programme, die ich per CUxD Timer auslöse. Die Programme sind so aufgebaut, dass ich wirklich ein Ereignis als Auslöser brauche. TIMER_GET=0 oder TIMER_NUM haben das Problem, dass sie auch wahr sind, wenn das Programm durch einen anderen Auslöser getriggert wird, und so der falsche Programmteil ausgeführt wird.

Auf meiner alten PivCCU3 habe ich dafür das TIMER_EVENT genutzt, was entgegen dem Hinweis in der Doku immer zuverlässig funktioniert hat. Nach einer frischen Neu-Installation (wegen eines unlösbaren Bugs) musste ich feststellen, dass das TIMER_EVENT so gut wie gar nicht mehr auslöst. Experimente mit Multi-Timern und TIMER_NUM=1 haben so halb geklappt.

Nachdem ich für ähnlich gelagerte Szenarien schon die virtuelle Fernbedienung nutze, lag es nahe das auch in diesem Fall zu tun. Erst habe ich dazu ein Programm angelegt,
Wenn TIMER_GET=0 bei Aktualisierung auslösen => virtuelle Fernbedienung Tastendruck
Der Tastendruck dient wiederum als Auslöser für das "große" Programm.

Nach etwas Suchen, wie das ohne zweites Programm gehen könnte, bin ich auf das timer.tcl Skript gestoßen. In den Einstellungen des Timers habe ich nun als CMD_EXEC das Kommando

Code: Alles auswählen

/usr/local/addons/cuxd/extra/timer.tcl HmIP-RF.HmIP-RCV-1:27.PRESS_SHORT 1 1
eingetragen. Damit drückt der Timer bei Ablauf um eine Sekunde verzögert (das ist für mich zu verschmerzen) die Taste 27 der virtuellen Fernbedienung2.

Vielleicht ginge es auch noch eleganter, aber diese Lösung funktioniert bislang absolut zuverlässig, ich habe ein echtes Event als Programmauslöser, das den jeweiligen Programmzweig auch wirklich nur bei Ablauf des Timers auslöst, und brauche nicht noch ein zusätzliches Programm.
Zuletzt geändert von uwe111 am 07.04.2022, 10:16, insgesamt 1-mal geändert.
Grund: CODE in CODE Tags

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Beitrag von uwe111 » 07.04.2022, 10:19

rentier-s hat geschrieben:
07.04.2022, 09:39
Nach etwas Suchen, wie das ohne zweites Programm gehen könnte, bin ich auf das timer.tcl Skript gestoßen. In den Einstellungen des Timers habe ich nun als CMD_EXEC das Kommando

Code: Alles auswählen

/usr/local/addons/cuxd/extra/timer.tcl HmIP-RF.HmIP-RCV-1:27.PRESS_SHORT 1 1
eingetragen. Damit drückt der Timer bei Ablauf um eine Sekunde verzögert (das ist für mich zu verschmerzen) die Taste 27 der virtuellen Fernbedienung2.
Warum verzögerst Du den Aufruf überhaupt um 1s?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Benutzeravatar
Baxxy
Beiträge: 10826
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2225 Mal

Re: CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Beitrag von Baxxy » 07.04.2022, 10:23

Interessanter Ansatz.
Die TIMER_EVENT Problematik steht aktuell auf meiner "To do Liste.
Momentan sind wir an der unzuverlässigen TIMER_GET Geschichte dran. viewtopic.php?f=37&t=72982#p708376
Das läuft aber inzwischen mit der letzten CUxD Testversion dank Uwe's Workaround "rock stable".

TIMER_EVENT funktioniert bei mir aktuell genau 1x nach Zentralenstart, danach nicht mehr

rentier-s
Beiträge: 376
Registriert: 19.06.2017, 09:24
Hat sich bedankt: 20 Mal
Danksagung erhalten: 67 Mal

Re: CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Beitrag von rentier-s » 07.04.2022, 10:30

uwe111 hat geschrieben:
07.04.2022, 10:19
Warum verzögerst Du den Aufruf überhaupt um 1s?
Ehrlich gesagt weil ich dachte, man muss dem TCL eine Verzögerung mitgeben. Den Parameter einfach 0 zu setzen habe ich nicht probiert. Außerdem spielt die eine Sekunde in meinem Falle keine Rolle.

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: CUxD Timer, zuverlässiges Timer_Event per virtueller Fernbedienung

Beitrag von uwe111 » 07.04.2022, 10:46

rentier-s hat geschrieben:
07.04.2022, 10:30
weil ich dachte, man muss dem TCL eine Verzögerung mitgeben. Den Parameter einfach 0 zu setzen habe ich nicht probiert.
Du kannst den letzten Parameter einfach weglassen. Auch den Programmpfad kannst Du kürzen.
Der Aufruf würde dann so aussehen:

Code: Alles auswählen

extra/timer.tcl HmIP-RF.HmIP-RCV-1:27.PRESS_SHORT 1
Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Antworten

Zurück zu „CUxD“