Timer Ablauf

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Timer Ablauf

Beitrag von udo1toni »

Ich sehe das Problem... Die Rule, welche die Zeit für den Timer ändert, läuft, aber währenddessen endet der Timer und läuft selbst. Das Timing ist so ungünstig, dass der Timer noch den alten Wert im Item vorfindet und entsprechend auch nutzt.
Was mich allerdings etwas verwundert, ist, warum der Timer nicht dennoch neu geplant wird. Hast Du wirklich alle Vorkommen des Loggers org.openhab.core.model.script.charge angezeigt, oder hast Du nur die erwarteten Zeiten angeschaut? In frontail kannst Du gezielt nach Schlüsselworten filtern :), von der Kommandozeile aus geht es sogar noch bequemer.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Timer Ablauf

Beitrag von shuo »

Hi Udo. Ich hatte bereits "großzügig" gefiltert. Anbei noch ein kompletter Auszug auch mit allen "tMyTimer already scheduled, abort Rule"
charge.txt
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Timer Ablauf

Beitrag von udo1toni »

Ja, das ist es... Manchmal muss man das große Ganze sehen, um ein Detail zu erkennen...

Man sehr schön sehen, dass zunächst der Timer endet (z.B. 14:03:43) und unmittelbar tSched ausliest. ziemlich genau zu dem Zeitpunkt wird auch die erste Abfrage gestartet, welche in einem Log um 14:03:54 mündet. In der Zwischenzeit hat die timespan Rule nSoll und auch das zugehörige Item verstellt. Der Timer wurde erneut geplant. Der Timer-Code läuft zu diesem Zeitpunkt aber noch und die zweite Abfrage braucht auch noch mal 4 Sekunden. Anschließend plant sich der Timer selbst erneut ein, die Zeit ist aber die von vor 14 Sekunden...

Die Lösung ist deshalb denkbar einfach:
Verschiebe die Zeile

Code: Alles auswählen

val tSched = if(myTime.state instanceof Number) (myTime.state as Number).intValue else 0                   // Zykluszeit in Minuten
unmittelbar vor das if(tSched > 0), seiht dann so aus:

Code: Alles auswählen

    tMyTimer = createTimer(now.plusSeconds(1), [|                                                                  // Timer anlegen und gleich starten
        val results_status = executeCommandLine(Duration.ofSeconds(30), "sudo", "-u", "openhabian", "/usr/local/bin/pyze", "status", "--km")
        logInfo("charge", "timer: results_Status Plugged {}", results_status)
        val results_vehicle = executeCommandLine(Duration.ofSeconds(30),"sudo", "-u", "openhabian", "/usr/local/bin/pyze", "vehicles")
        logInfo("charge", "timer: results_Vehicle Plugged {}", results_vehicle)
        val tSched = if(myTime.state instanceof Number) (myTime.state as Number).intValue else 0                   // Zykluszeit in Minuten
        if(tSched > 0) {
            logInfo("charge","timer: Timer scheduled in {} Minutes!",tSched)
            tMyTimer.reschedule(now.plusMinutes(tSched))
        } else {
            logInfo("charge","timer: no reschedule for Timer!")
            tMyTimer = null
        }
    ])
Auf die Logzeile können wir dann auch verzichten, da im if-Block auf jeden Fall eine Ausgabe erfolgt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Timer Ablauf

Beitrag von shuo »

Danke vielmals. Nach Deiner Erklärung ist es nun völlig klar. Ich wäre niemals von selbst da drauf gekommen.

Ich denke ich muss morgen wieder laden. Werde dann berichten (und irgendwie freue ich mich schon drauf) :D

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Timer Ablauf

Beitrag von udo1toni »

:)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Timer Ablauf

Beitrag von shuo »

Kurz Rückmeldung: Nun funktioniert alles wie es soll! Vielen Dank Udo!

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Timer Ablauf

Beitrag von udo1toni »

Super! Manchmal sind solche (Denk-) Fehler schwer zu finden...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten