Ich versuche folgendes Szenario zu verwirklichen, was ich auch schon immer mal step by step aufgebaut habe. Einzeln geht alles. In Summe geht es nicht mehr.
Da ich ich mit meinem Mac den Texteditor VSC nicht zum laufen bekommen, ich keine Ahnung von DSL habe und Blockly mich leider auch nur bedingt weitergebracht hat, bin ich bei diesem Script angekommen:
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 = [];
}
if (typeof this.timers['MyTimer'] === 'undefined' || this.timers['MyTimer'].hasTerminated()) {
this.timers['MyTimer'] = scriptExecution.createTimer(zdt.now().plusSeconds(7), function () {
if (itemRegistry.getItem('Zustand_Alarmanlage_Status').getState() == 'ON') {
events.sendCommand('Sicherheitsalarm_Ausloeser', itemRegistry.getItem(event.itemName).getLabel());
events.sendCommand('Sicherheitsalarm_aktiviert', 'ON');
}
})
}
Wenn also nun eine Bewegung erfasst wird, soll 7 Sekunden gewartet werden. Danach wird geprüft, ob Zustand_Alarmanlage_Status = ON ist.
Wenn ja, soll der Bewegungsmeldername in das Item „Sicherheitsalarm_Ausloeser“ geschrieben werden und der Switch „Sicherheitsalarm_aktiviert“ soll auf ON gesetzt werden.
Interessant ist: Wenn ich den Timer rauslasse geht es.
Wenn ich den Timer alleine laufen lasse und nur einen events.sendCommand Befehl dahinter habe. Geht es auch.
Schreibe ich alles ab if hinter die letzte Klammer, werden alle Aktionen direkt ausgeführt ohne die 7 Sekunden zu warten.
Es soll nämlich gewährleistet werden, dass man nach der Bewegungserfassung im Flur noch 7 Sekunden Zeit hat, den Switch „Alarmanlage“ zu betätigen. Das soll nicht über die App oder sonstwie erfolgen. Sondern nur über einen versteckten Taster im Haus.
Wo ist der Fehler im Script?
Wie kann man das Problem in java oder DSL lösen?
Bitte nicht über den Texteditor….. DAs geht bei mir - wie oben beschrieben - leider nicht oder ich bin zu blöd für so hochkomplexe Programmierungen über Texte ausserhalb von OH3.
Lieben Dank im Voraus und noch einen schönen Abend.
Viele Grüße
Frank