rrd4j hat Probleme mit bestimmten Abfragen, z.B. changedSince ist so ein Fall.
Nein, das geht gleich aus mehreren Gründen nicht. Zuerst mal arbeitet openHAB asynchron. Eine Rule kann beliebig oft getriggert werden und wird dann auch beliebig oft nebeneinander ausgeführt. Das "Anhalten" könnte im Extremfall dazu führen, dass gar kein Code mehr ausgeführt wird, weil alle zur Verfügung stehenden Threads von angehaltenen Rules belegt sind.Kann man da nicht ne art "Delay" einbauen, so das die Rule 120sec "hält" und dann weiter läuft ?
Die Rule wird ja nicht ausschließlich bei einem Wechsel der Betriebsart getriggert, sondern bei jeglicher Wertänderung. deshalb musst Du wissen, wann die Betriebsart gewechselt wurde.
Na ja, die ist auch für andere Dinge sinnvoll. Man kann um das Problem herum programmieren, indem man die Funktion selbst implementiert:Dann brauch ich keine Datenbank.
Code: Alles auswählen
var Long lLStufe
rule "luefter geändert"
when
Item Luefterstufe changed
then
lLStufe = now.millis
end
Code: Alles auswählen
if(lLStufe + 2*60*1000 < now.millis){
//Lüfter läuft bereits mindestens 2 Minuten auf der aktuellen Stufe
}
Aber nur zu Anfang, wenn man es mal verstanden hat, ist es einfach. Wenn man den Code immer schön einrückt, sieht man auf einen Blick, was wohin gehört.Bei dem ganzen geklammere wirds einem böse schwindelig.