Multitimer nach Neustart setzen

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

Moderator: Co-Administratoren

Donut
Beiträge: 33
Registriert: 21.09.2017, 19:57
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wedel

Multitimer nach Neustart setzen

Beitrag von Donut » 29.03.2021, 09:03

Guten Morgen,

ich habe eine Frage zur CUxD Funktion Multitimer zu welcher ich leider noch keine Antwort gefunden habe.

Ich verwende die Funktion Multitimer um Zeiträume festzulegen, in denen Programme, getriggert durch einen weiteren Auslöser, ausgeführt werden. Die Multitimer haben gegenüber dem integrierten Zeitmodul den Vorteil, dass sich diese durch neues Setzen der Zeiten über eine Visualisierung (iobroker), variabel verwenden lassen da zu den Start- oder Endzeiten auch weitere Aktionen ausgeführt werden die sich situationsbedingt verschieben können wie z.B. Rollläden hoch oder runter, Licht an oder aus, etc.

Da jeder Zeitraum pro Tag bei mir nur zwei Zeitangaben hat, z.B. 15:00:00/22:00:00 und der Timer nach einem Neustart erst bei Erreichen der ersten Angabe richtig funktioniert (glaube ich zumindest und meine es so beobachtet zu haben) kommt es leider nach jedem Neustart des Systems zu teilweise falschen Schaltzuständen der Multitimer. Wenn das System bei dem oben genannten Timer um 18:00 neu gestartet wird, bleibt dieser um 22:00:00 leider im Schaltzustand „ein“ bis er von Anfang an durchgefahren wird, heißt, erst am kommenden Tag um 22:00:00 wird der Schaltzustand wieder auf „aus“ gesetzt.

Das kommt leider ab und an zu unschönen Situationen wie gestern, Sonntagmorgen nach der Umstellung auf Sommerzeit, fuhren die Rollläden pünktlich zum Sonnenaufgang um 7:05:00 hoch, leider 1 Stunde und 25 Minuten zu früh, was gerade an dem Tag mit der fehlenden Stunde äußerst ärgerlich war. Ausschlaggebend hierfür war ein Neustart der Raspimatic am Vortag um 8:36 welcher den Timer für den Zeitraum zum Hochfahren der Rollläden zum Sonnenaufgang, 08:30:00/10:00:00, den ganzen Samstag über im Schaltzustand „ein“ behielt und erst am Sonntag um 8:30 neu gestartet werden würde.

Lange Rede, kurze Frage, gibt es eine Möglichkeit, die Multitimer Zustände nach einem Reboot in den richtigen Schaltzustand zu zwingen, bzw. an die aktuelle Position des Durchlaufs zu setzen? Oder gibt es einen Workaround hierfür, mir ist leider noch nichts Passendes eingefallen.

Schon mal herzlichen Dank, ich hoffe, ich habe mich verständlich ausgedrückt.
Niclas

Xel66
Beiträge: 14066
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 577 Mal
Danksagung erhalten: 1491 Mal

Re: Multitimer nach Neustart setzen

Beitrag von Xel66 » 29.03.2021, 10:37

Per Programm kann man doch die Timer gezielt ein- und ausschalten. Die Prüfung auf plausiblen Schaltzustand musst Du natürlich dann ggf. per Script durchführen (Timer auslesen, mit aktueller Uhrzeit vergleichen und ggf. den Timerzustand korrigieren). Das ist natürlich nur ein Würgaround und nicht wirklich praktikabel für so seltene Vorgänge wie einen Reboot. Darum benutze ich keine Multitimer bzw. triggere nur auf TIMER_GET (aber ich starte meine CCU nur äußerst selten neu).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

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

Re: Multitimer nach Neustart setzen

Beitrag von uwe111 » 29.03.2021, 11:33

Hallo Niclas,

ich weiß jetzt nicht, wie Du Deine CCU rebooted hast, aber nach einem Neustart vom CUxD sollte der Multitimer einfach an der aktuellen Position weiterarbeiten.
Nur bei einer Neuinitialisierung des Timers, fängt er natürlich vom Anfang an. In diesem Fall kann man mittels TIMER_NUM Datenpunkt den Multitimer manuell an die gewünschte Stelle setzen.

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

Donut
Beiträge: 33
Registriert: 21.09.2017, 19:57
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wedel

Re: Multitimer nach Neustart setzen

Beitrag von Donut » 29.03.2021, 12:12

Danke für die superschnellen Antworten.
Xel66 hat geschrieben:
29.03.2021, 10:37
(aber ich starte meine CCU nur äußerst selten neu).
Ich starte meine Zentrale natürlich auch so selten wir möglich, allein schon, um das Kuddelmuddel mit den Timern zu vermeiden. Aber manchmal ist es leider notwendig…
Xel66 hat geschrieben:
29.03.2021, 10:37
Die Prüfung auf plausiblen Schaltzustand musst Du natürlich dann ggf. per Script durchführen (Timer auslesen, mit aktueller Uhrzeit vergleichen und ggf. den Timerzustand korrigieren).
An ein Script, dass bei einem Neustart die Multitimer wieder an die richtige Stelle setzt habe ich noch gar nicht gedacht, dass schaue ich mir heute Abend mal in Ruhe an, wie das realisiert werden könnte.
uwe111 hat geschrieben:
29.03.2021, 11:33
ich weiß jetzt nicht, wie Du Deine CCU rebooted hast, aber nach einem Neustart vom CUxD sollte der Multitimer einfach an der aktuellen Position weiterarbeiten.
Nur bei einer Neuinitialisierung des Timers, fängt er natürlich vom Anfang an. In diesem Fall kann man mittels TIMER_NUM Datenpunkt den Multitimer manuell an die gewünschte Stelle setzen.
Eigentlich wird die CCU nur nach Updates neu gestartet und darauf, wie dies dann gemacht wird habe ich keinen Einfluss, geschieht ja automatisch. Ich suche heute Abend mal ein Beispiel raus, im Historian müsste das ja abgebildet sein. Den TIMER_NUM hatte ich noch gar nicht auf der Rolle, muss ich testen, ob es vielleicht damit geht.

Danke schonmal, ich bin ein paar Denkanstöße weiter. :D

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

Re: Multitimer nach Neustart setzen

Beitrag von uwe111 » 29.03.2021, 13:46

Donut hat geschrieben:
29.03.2021, 12:12
Eigentlich wird die CCU nur nach Updates neu gestartet und darauf, wie dies dann gemacht wird habe ich keinen Einfluss, geschieht ja automatisch.
Vielleicht funktioniert das Herunterfahren der CCU-Prozesse nach einem Update nicht sauber.
Wenn Du vor dem Update (Neustart) den CUxD manuell über die CUxD-Adminseite beendest, sollten die aktiven Multitimer nach einem CCU Neustart ohne Neuinitialisierung weiterlaufen.

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

Donut
Beiträge: 33
Registriert: 21.09.2017, 19:57
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wedel

Re: Multitimer nach Neustart setzen

Beitrag von Donut » 29.03.2021, 20:13

So, bin jetzt endlich mal an den Rechner gekommen. Bei dem schönen Wetter musste ich draußen noch etwas erledigen.

Hier ein Auszug aus Historian, am 4.3.habe ich die CCU neu gestartet, da sind die Multitimer aus dem Tritt gekommen, vorher und nach einem kompletten Durchlauf war alles wieder, wie zu sehen ist, ok.
Historian.png
uwe111 hat geschrieben:
29.03.2021, 13:46

Vielleicht funktioniert das Herunterfahren der CCU-Prozesse nach einem Update nicht sauber.
Kann ich irgendwo im Log sehen, ob das Runterfahren sauber läuft? Bevor ich etwas anderes ausprobiere sollte ich erstmal prüfen, ob das System richtig läuft.

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

Re: Multitimer nach Neustart setzen

Beitrag von uwe111 » 01.04.2021, 23:36

Donut hat geschrieben:
29.03.2021, 20:13
Kann ich irgendwo im Log sehen, ob das Runterfahren sauber läuft?
Im Syslog der CCU sollte nach dem Herunterfahren diese Zeile stehen:

Code: Alles auswählen

save paramsets(/usr/local/addons/cuxd/cuxd.ps)
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

Donut
Beiträge: 33
Registriert: 21.09.2017, 19:57
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wedel

Re: Multitimer nach Neustart setzen

Beitrag von Donut » 06.04.2021, 08:55

Moin Uwe,

sorry für die späte Rückmeldung, ich hatte mal unbeabsichtigt ein paar Tage über Ostern auf Internet verzichtet.

Um das zu sehen muss ich mir erst noch einen Logserver einrichten, der Logfile auf dem Raspi ist ja nach einem Neustart weg. Das sollte ich aber kurzfristig hinbekommen.

Grüße aus dem verschneiten Wedel,
Niclas

Donut
Beiträge: 33
Registriert: 21.09.2017, 19:57
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wedel

Re: Multitimer nach Neustart setzen

Beitrag von Donut » 09.05.2021, 15:29

Hallo Uwe,

ich habe es tatsächlich doch noch geschafft, bei diesem Thema mehr Infos zusammen zu stellen.
uwe111 hat geschrieben:
01.04.2021, 23:36
Im Syslog der CCU sollte nach dem Herunterfahren diese Zeile stehen:

Code: Alles auswählen

save paramsets(/usr/local/addons/cuxd/cuxd.ps)
Die genannte Zeile ist so im Zusammenhang mit einem kontrollierten Runterfahren der Raspberrymatic im Log vorhanden. Leider verhalten sich die Timer trotz dessen nicht so wie ich denke, dass es sein soll.
Webaufnahme_9-5-2021_151829_192.168.178.115.jpeg
Wie im Historian zu sehen verhalten sich die Timer rund um den Neustart am 30.4.21 anders als an den tagen davor und danach.

Hättest Du noch eine Idee, wo ich schauen könnte?

Grüße aus dem sonnigen (endlich mal :D ) Wedel,
Niclas

Xel66
Beiträge: 14066
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 577 Mal
Danksagung erhalten: 1491 Mal

Re: Multitimer nach Neustart setzen

Beitrag von Xel66 » 09.05.2021, 16:01

Ich würde überall da schauen, wo für den entsprechenden Timer die Laufzeiten gesetzt werden. Sieht für mich so aus, als ob beim Neustart irgendwelche Programme laufen, die den Timer neu setzen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „CUxD“