Time Cron Regeln funktionieren nicht mehr
-
- Beiträge: 7
- Registriert: 10. Jul 2019 16:52
Time Cron Regeln funktionieren nicht mehr
Hallo zusammen,
ich habe das Problem, dass meine Regeln nach einiger Zeit (manchmal Tage, manchmal Stunden) einfach nicht mehr ausgeführt werden. Habe zum Beispiel eine Time Cron Regel die minütlich ausgeführt wird. Diese sehe ich anfänglich auch im Log. Irgendwann wird sie aber einfach nicht mehr ausgeführt.
Erst sobald ich den OpenHab Service neu starte läuft wieder alles. Hat jemand ein ähnliches Problem schonmal gelöst ?
Wäre sehr dankbar den Fehler zu finden.
Danke u. Gruß
dagobert23
ich habe das Problem, dass meine Regeln nach einiger Zeit (manchmal Tage, manchmal Stunden) einfach nicht mehr ausgeführt werden. Habe zum Beispiel eine Time Cron Regel die minütlich ausgeführt wird. Diese sehe ich anfänglich auch im Log. Irgendwann wird sie aber einfach nicht mehr ausgeführt.
Erst sobald ich den OpenHab Service neu starte läuft wieder alles. Hat jemand ein ähnliches Problem schonmal gelöst ?
Wäre sehr dankbar den Fehler zu finden.
Danke u. Gruß
dagobert23
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Time Cron Regeln funktionieren nicht mehr
Thread Pool ausgereizt?dagobert23 hat geschrieben: ↑10. Jul 2019 16:58 ich habe das Problem, dass meine Regeln nach einiger Zeit (manchmal Tage, manchmal Stunden) einfach nicht mehr ausgeführt werden. Habe zum Beispiel eine Time Cron Regel die minütlich ausgeführt wird. Diese sehe ich anfänglich auch im Log. Irgendwann wird sie aber einfach nicht mehr ausgeführt.
Erst sobald ich den OpenHab Service neu starte läuft wieder alles. Hat jemand ein ähnliches Problem schonmal gelöst ?
udo1toni hat geschrieben: ↑4. Feb 2019 23:54 Also, es gibt zwei verschiedene Grenzen im Zusammenhang mit Rules:
1. openHAB hält einen Thread Pool vor, in dem die Rules laufen. Dieser Thread Pool ist default für 5 Rules definiert.
2. openHAB hält einen weiteren Thread Pool vor, der am Scheduler hängt. Dieser Thread Pool ist default für 2 Rules definiert.
Das bedeutet, insgesamt können bis zu sieben Rules gleichzeitig ausgeführt werden, zwei, die durch Time cron Trigger oder einem per createTimer() erstellten Timer laufen, fünf weitere, die durch andere Trigger ausgelöst werden/wurden. Dazu zählen auch die System started Rules, auch, falls solche Rules zusätzlich durch Time cron getriggert werden.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 7
- Registriert: 10. Jul 2019 16:52
Re: Time Cron Regeln funktionieren nicht mehr
Hallo sihui,
vielen Dank erstmal für die schnelle Antwort !
Ich werd mal alle Regeln bis auf eine Time cron rausnehmen und beobachten obs dann länger funktioniert.
Melde mich wieder...
Gruß dagobert23
vielen Dank erstmal für die schnelle Antwort !
Ich werd mal alle Regeln bis auf eine Time cron rausnehmen und beobachten obs dann länger funktioniert.
Melde mich wieder...
Gruß dagobert23
-
- Beiträge: 7
- Registriert: 10. Jul 2019 16:52
Re: Time Cron Regeln funktionieren nicht mehr
So nun konnte ich das mal beobachten...
Aktuell ist nur noch eine Regel aktiv die minütlich etwas prüft. Zur Kontrolle habe ich eine Ausgabe ins Log reingemacht.
Gestern abend hab ich meinen Pi und die DIenste neu gestartet. Heute morgen konnte ich im Logfile den Ausgabetext schon nicht mehr sehen.
Ab wann das ganze nicht mehr lief kann ich leider nicht genau sagen...
Bin am verzweifeln was ich falsch mache
Jemand noch ne gute Idee ?
Hab schon überlegt einfach den Openhab Dienst täglich einmal per Rule neu zu starten da es danach meistens wieder geht, ist aber wohl nicht Sinn der Sache.
Aktuell ist nur noch eine Regel aktiv die minütlich etwas prüft. Zur Kontrolle habe ich eine Ausgabe ins Log reingemacht.
Gestern abend hab ich meinen Pi und die DIenste neu gestartet. Heute morgen konnte ich im Logfile den Ausgabetext schon nicht mehr sehen.
Ab wann das ganze nicht mehr lief kann ich leider nicht genau sagen...
Bin am verzweifeln was ich falsch mache
Jemand noch ne gute Idee ?
Hab schon überlegt einfach den Openhab Dienst täglich einmal per Rule neu zu starten da es danach meistens wieder geht, ist aber wohl nicht Sinn der Sache.
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Time Cron Regeln funktionieren nicht mehr
Wenn dieser eine time cron Thread nicht beendet wird wenn der nächste Durchlauf startet hast du das von dir geschilderte Problem.dagobert23 hat geschrieben: ↑12. Jul 2019 08:36 Aktuell ist nur noch eine Regel aktiv die minütlich etwas prüft. Zur Kontrolle habe ich eine Ausgabe ins Log reingemacht.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 7
- Registriert: 10. Jul 2019 16:52
Re: Time Cron Regeln funktionieren nicht mehr
Okay, aber verstehe nicht ganz was daran falsch sein soll. Hier die Testregel
Wird der Thread denn nicht nach Ausführung direkt auch beendet? Sorry wenn ich so blöd frage aber bin ziemlich neu im Thema
Andere haben doch bestimmt auch mehrere solcher Rules am laufen...
Code: Alles auswählen
rule "Mintülicher Test"
when
Time cron "0 * * ? * 1-5" // minütlicher Aufruf
then
logInfo("Testregel","Nur ein Test")
end
Andere haben doch bestimmt auch mehrere solcher Rules am laufen...
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Time Cron Regeln funktionieren nicht mehr
Ich habe nicht gesagt das es falsch ist, da du die Regel nie gezeigt hast.dagobert23 hat geschrieben: ↑12. Jul 2019 19:54 Okay, aber verstehe nicht ganz was daran falsch sein soll.
Nein, die Regel sollte ohne Probleme funktionieren.
Ja, man kann mehrere davon laufen lassen, normalerweise auch ohne Probleme.
Deaktiviere einfach mal alle anderen Regeln für einen Test um zu sehen ob die time cron Regeln überhaupt die Ursache des Problems sind.
Außerdem sollte die openhab.log einiges zu einem möglichen Fehler aussagen können.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 7
- Registriert: 10. Jul 2019 16:52
Re: Time Cron Regeln funktionieren nicht mehr
Ich habe nun im Ordner /etc/openhab2/rules nur noch 2 Files die auf .rules enden und somit scharf sein sollten. Alles andere in dem Ordner wurde umbenannt. Hier der Inhalt der beiden Dateien:
Und die andere Datei ist ein Wecker
Gibt es die Möglichkeit anstatt im LogViewer eine Ausgabe zu machen auch in eine Datei zu schreiben mit Zeitstempel ? Dann könnte ich mal schauen wie lange die Regeln funktionieren und wann sie aussteigen.
Danke für deine Hilfe !
Code: Alles auswählen
rule "Abfall"
when
Time cron "0 0 18 * * ?"
then
var String abfallart
abfallart = CalDav_Abfall.state.toString
if (now.isAfter(new DateTime((CalDav_Date.state as DateTimeType).getCalendar().getTime()).minusHours(24)) &&
now.isBefore(new DateTime((CalDav_Date.state as DateTimeType).getCalendar().getTime()))) {
sendMail("meineadresse@gmail.com", "Abfallinfo", "Morgen ist " + abfallart)
logInfo("Mailabfall", "MailTonne" + abfallart)
sendCommand(Hausinformation, abfallart)
}
end
Code: Alles auswählen
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
import org.joda.time.*
rule "Wecker - Aenderung der Konfiguration"
when
Item weckerZeitStunde received update or
Item weckerZeitMinute received update
then
var weckerStunde = weckerZeitStunde.state as DecimalType
var weckerMinute = weckerZeitMinute.state as DecimalType
var String weckerText = ''
if (weckerStunde.intValue < 10) weckerText = '0'
weckerText = weckerText + weckerStunde.intValue + ':'
if (weckerMinute.intValue < 10) weckerText = weckerText + '0'
weckerText = weckerText + weckerMinute.intValue
postUpdate(weckerZeitMessage, weckerText)
end
rule "Wecker - prüfen"
when
Time cron "0 * * ? * 1-5"
then
var weckerStunde = (weckerZeitStunde.state as DecimalType).intValue
var weckerMinute = (weckerZeitMinute.state as DecimalType).intValue
if (
(now.getHourOfDay.intValue == weckerStunde) && (now.getMinuteOfHour.intValue == weckerMinute)
&& (
((weckerMontag.state == ON) && now.getDayOfWeek.intValue == 1) ||
((weckerDienstag.state == ON) && now.getDayOfWeek.intValue == 2) ||
((weckerMittwoch.state == ON) && now.getDayOfWeek.intValue == 3) ||
((weckerDonnerstag.state == ON) && now.getDayOfWeek.intValue == 4) ||
((weckerFreitag.state == ON) && now.getDayOfWeek.intValue == 5) ||
((weckerSamstag.state == ON) && now.getDayOfWeek.intValue == 6) ||
((weckerSonntag.state == ON) && now.getDayOfWeek.intValue == 7)
)
) {
logInfo ('rules','Wecker wird aktiviert...')
if (weckerRolladen.state == ON){
sendCommand(RolladenEGZentral, UP)
}
if (weckerLicht.state == ON){
sendCommand(LichtAnkleide, ON)
}
} else {
logInfo('rules','Wecker nicht aktiviert, Bedingung für Wecker trifft nicht zu')
}
end
Danke für deine Hilfe !
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Time Cron Regeln funktionieren nicht mehr
Ich weiß leider nicht was du mit "Logviewer" meinst. Hast du eine openHABian Installation? Da gibt es zusätzliche Logviewer (ich glaube frontail), habe ich aber noch nie probiert.dagobert23 hat geschrieben: ↑12. Jul 2019 20:13 Gibt es die Möglichkeit anstatt im LogViewer eine Ausgabe zu machen auch in eine Datei zu schreiben mit Zeitstempel ?
Der "normale" Weg sich die Logs anzuschauen sind die openhab.log und natürlich das events.log:
https://www.openhab.org/docs/administra ... ile-system
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
- peter-pan
- Beiträge: 2568
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Time Cron Regeln funktionieren nicht mehr
Ich denke was shiu mit frontail meint, ist der ganz normale OPENHAB LOG VIEWER, der in der Auswahlmaske neben BasicUI, PaperUI, etc. angezeigt wird.
Du hast ja eine schöne Testregel erstellt. Diese kannst du ja in Frontail filtern (oben rechts). Gib einfach das Wort "Testregel" ein, dann siehst du nur die Logs mit Zeitstempel deiner Testregel. Dann kannst du sehen, ob bzw. wann die Regel nicht mehr läuft, falls das die Ursache sein sollte.
Du hast ja eine schöne Testregel erstellt. Diese kannst du ja in Frontail filtern (oben rechts). Gib einfach das Wort "Testregel" ein, dann siehst du nur die Logs mit Zeitstempel deiner Testregel. Dann kannst du sehen, ob bzw. wann die Regel nicht mehr läuft, falls das die Ursache sein sollte.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian