dank der Erklärungen in diesem Forum - insbesondere von Udo , habe ich - denke ich - das Thema verstanden und zwar das Timer nichts mit der Rule zu tun haben.
Dennoch habe ich eine ergänzende Frage, könnt ihr euch bitte mein ECMA - Skript mal ansehen, ob das so passt?
Hintergrund: ich überwache eine Steckdose, diese soll, wenn eine bestimmte Spannung unterschritten wird, sich nach zwei Minuten ausschalten. . Jetzt ist es natürlich so, dass wenn der Timer auf 2 Minuten gesetzt wurde, die rule innerhalb dieser 2 Minuten erneut ausgeführt wird, sofern die Spannung unterhalb der Grenze bleibt. (Rule Trigger ist : Change Power) Jetzt gilt es, aus meiner Sicht, zu verhindern, das erneut Timer gesetzt werden, denn ansonsten habe x Timer am laufen, oder sehe ich das falsch.
Code: Alles auswählen
var scriptExecution = Java.type('org.openhab.core.model.script.actions.ScriptExecution');
var zdt = Java.type('java.time.ZonedDateTime');
if (typeof this.timers === 'undefined') {
this.timers = [];
}
function StromBuero2() {
if (itemRegistry.getItem('CIOfficeManuell').getState() == 'OFF') {
events.sendCommand('StromDGBuro_Switch2', 'OFF');
this.timer = undefined;
}
}
if (typeof this.timers['StromBuro2'] === 'undefined' || this.timers['StromBuro2'].hasTerminated()) {
this.timers['StromBuro2'] = scriptExecution.createTimer(ZonedDateTime.now().plusSeconds(120), StromBuero2);
}