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.
Timer Ablauf
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Hi Udo. Ich hatte bereits "großzügig" gefiltert. Anbei noch ein kompletter Auszug auch mit allen "tMyTimer already scheduled, abort Rule"
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
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
unmittelbar vor das if(tSched > 0), seiht dann so aus:
Auf die Logzeile können wir dann auch verzichten, da im if-Block auf jeden Fall eine Ausgabe erfolgt.
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
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
}
])
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
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)
Ich denke ich muss morgen wieder laden. Werde dann berichten (und irgendwie freue ich mich schon drauf)
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Kurz Rückmeldung: Nun funktioniert alles wie es soll! Vielen Dank Udo!
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
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