Wo ist der Sinn, die aktuelle Uhrzeit in eine Systemvariable zu schreiben, um sie wieder auszulesen und in einen Timer zu schreiben? Schreibe doch gleich die Uhrzeit in den Timer und wenn du dann noch was abziehen willst, schicke gleich eine Timerkorrektur hinterher. Du sparst Dir die Fehlerbehandlung, falls mal Müll in der Systemvariable stehen würde. Möchtest Du die nächste Timerauslösezeit unbedingt in einer Systemvariable haben, kannst du das auch noch aus dem aktuellen Timer auslesen und in eine Systemvariable schreiben.
Anbei mal ein Beispiel indem die lokale Uhrzeit ausgelesen, in den Timer geschrieben und danach 30 Minuten (1800 Sekunden) abgezogen wird. Du musst das nur auf den von Dir benutzen Timerkanal anpassen:
Code: Alles auswählen
string briefkastentimer = localtime.Format("%H:%M:%S").ToString();
dom.GetObject("CUxD.CUX2800001:1.TIMER_SET").State(briefkastentimer);
dom.GetObject("CUxD.CUX2800001:1.TIMER_SET").State("-1800");
Damit der Timer auch an Briefträger-freien Tagen (Feiertag, Sonntag) wieder gesetzt wird, würde ich für diesen "Repeat" aktivieren und das Setzen des Timers auf die Nachtstunden (Zeitmodul Astro nachts) beschränken und durch das Öffnen der Briefklappe triggern, damit Dir der Timer nicht durch das Öffnen des Werbezetteleinwerfers am Tage verstellt wird.
Gruß Xel66