CUxD-Timer erweitern mit Datumsangaben

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

Moderator: Co-Administratoren

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

CUxD-Timer erweitern mit Datumsangaben

Beitrag von Baxxy » 24.07.2023, 22:04

Hallo Uwe,
die Aufgabenstellung: "löse den Timer aus wenn ich am 06.08.23 / 15:00 aus dem Urlaub zurück bin" gestaltet sich "schwierig".

Stand jetzt (und wie ich die Doku verstehe) müsste ich ("CUxD.CUX2800001:1.TIMER_SET").State("7:15:00:00"); setzen.
Also übernächsten Sonntag 15:00.

Kann man den CUxD-Timer nicht um totale Zeitangaben erweitern?
Also bspw: ("CUxD.CUX2800001:1.TIMER_SET").State("06.07.23-15:00:00");

Das wäre weit intuitiver und eine gute Alternative zum (wohl manchmal zickigem) Zeitmodul.

(Mein) Ziel ist es in einer Visu bloß noch den Endzeitpunkt einzutragen ohne irgendetwas rechnen zu müssen.
Das kann ich zwar jetzt auch schon mittels Script und damit umgeschriebenen Zeitmodul, der CUxD-Timer wäre aber meine 1.Wahl.

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

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von uwe111 » 27.07.2023, 15:56

Baxxy hat geschrieben:
24.07.2023, 22:04
Kann man den CUxD-Timer nicht um totale Zeitangaben erweitern?
Ich schaue mir mal an, ob die Umrechnung eines Zeitpunktes im String Format auch mit der Sommer/Normalzeit Umstellung noch zuverlässig funktioniert. Dann könnte ich sowas und eventuell auch die Übergabe eines Unix-Timestamps natürlich implementieren.

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: 10847
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2229 Mal

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von Baxxy » 27.07.2023, 16:07

Ach, an die blöde Zeitumstellung hatte ich gar nicht gedacht.

Hoffentlich macht die keinen Strich durch die (Zeit-) Rechnung.

Datum/Uhrzeit direkt als Unix-Timestamp einzutragen ist natürlich auch praktisch, die Umrechnung könnte ich für meinen Anwendungsfall mit einem kleinen Scriptchen machen.

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

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von rentier-s » 28.07.2023, 08:46

Falls es nicht klappt, mein Workaround, der seit >2 Jahren zuverlässig läuft:

Ich behelfe mir mit einer SV und einem täglichen Skript. In der SV trage ich per Tinymatic das Datum ein. Man könnte auch eine Werteliste nehmen, die lässt sich in der WebUI einfacher ändern.

Täglich um 3:30 läuft ein Skript, das ausliest ob das Datum erreicht ist, und falls ja den Timer auf die errechnete Uhrzeit (hat was mit Sonnenstand etc. zu tun) setzt. Theoretisch könnte man das erweitern und die Uhrzeit auch in die SV eintragen, brauche ich so nicht.

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

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von Baxxy » 28.07.2023, 16:28

Ja, Workarounds gehen immer. :wink:
Nativ wäre aber am besten.

Mal schauen was Uwe da so zaubert. :D

Ich habe ja auch ne SysVar in die ich das "Enddatum samt Uhrzeit" eintrage.
Wird die aktualisiert (durch eine Eingabe mit Zeitpunkt in der Zukunft) wird das Zeitmodul des "Urlaubsprogrammes" auf den eingegebenen Zeitpunkt umgeschrieben.

Läuft auch super, ist aber so komplex das ich vor einer Veröffentlichung bisher abgesehen habe.

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

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von uwe111 » 30.07.2023, 00:13

Hallo Baxxy,
Baxxy hat geschrieben:
24.07.2023, 22:04
Also bspw: ("CUxD.CUX2800001:1.TIMER_SET").State("06.07.23-15:00:00");
könnte der Timer-String auch so aussehen?
"2023-07-06T15:00:00" bzw. kurz "23-07-06T15:00:00"

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
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von uwe111 » 05.08.2023, 00:21

Hallo Baxxy,

in der aktuellen Testversion unter https://cuxd.de/download/ kannst Du mittels TIMER_SET entsprechende Timer setzen.
Also so: ("CUxD.CUX2800001:1.TIMER_SET").State("2023-07-06T15:00:00"); bzw. kurz "23-07-06T15:00:00"
oder als Unix-Timestamp so: ("CUxD.CUX2800001:1.TIMER_SET").State("T1691182651");
Ansonsten sind damit auch alle bereits vorhandenen Funktionen möglich (+-Sekunden, erweitern um Zufallswert, Multi-Timer)
Du kannst auch absolute und relative Timer mittels Multi-Timer hintereinander ausführen.

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: 10847
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2229 Mal

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von Baxxy » 05.08.2023, 10:37

Besten Dank Uwe!

Gucke ich mir dann nach dem Urlaub intensiver an.
Ein kurzer Test hier auf einem Mini-Testsystem sieht aber schon sehr gut aus. :)

Code: Alles auswählen

CUX2800001:2	state(1) timer(15822s) set(2023-08-05T15:01:01):0

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

Re: CUxD-Timer erweitern mit Datumsangaben

Beitrag von uwe111 » 12.08.2023, 23:20

Hallo Baxxy,
Baxxy hat geschrieben:
05.08.2023, 10:37
Gucke ich mir dann nach dem Urlaub intensiver an.
Ich hätte dann gleich noch was zum Testen. :)
In der aktuellen CUxD Testversion 2.10.7 habe ich ein neues (28) System.CCU Gerät mit dem Datenpunkt REBOOT hinzugefügt.
Damit kann man als Alternative zu der bekannten Lösung viewtopic.php?t=26278 ganz einfach und ohne Workaround über die Anwesenheits-Systemvariable die Ausführung von Programmverknüpfungen nach einem Neustart der CCU verhindern. In den Programmverknüpfungen muss dazu einfach als Bedingung das (28) System.CCU Gerät ausgewählt und auf REBOOT=FALSE geprüft werden.

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“