Timer abbrechen von anderer Rule vor Ausführung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Timer abbrechen von anderer Rule vor Ausführung

Beitrag von tommesd »

Hallo zusammen,
ich möchte eine Alarmanlage so konfigurieren, dass im Falle eines Alarms zunächst der visuelle Alarm ausgelöst wird und anschließend, nach 10 - 15 Sekunden der akkustische Alarm folgt.
Ich habe das in einer Rule über einen Timer realisiert. Wie kann ich diesen Timer über eine andere Rule abbrechen, wenn während des optischen Alarms die Deaktivierung erfolgt?
Ich möchte das gerne über mehrere Rules abbilden, da ich mehrere Alarm Szenarien und auch Deaktivierungen verwenden möchte.
Openhabian 4.0.4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Timer abbrechen von anderer Rule vor Ausführung

Beitrag von udo1toni »

Wenn Du das als DSL Rule in einer *.rules Datei machst, ist das kein Problem. Du musst lediglich in einem Objekt den Zeiger auf den Timer speichern.

Code: Alles auswählen

var Timer tMyTimer = null

rule „meine Rule“
…
then
    tMyTimer = createTimer(…,[…])
end

rule „meine zweite Rule“
…
then
    tMyTimer.cancel
end


Gesendet von iPad mit Tapatalk
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Timer abbrechen von anderer Rule vor Ausführung

Beitrag von tommesd »

Und wie geht das in verschiedenen rule Dateien?
Openhabian 4.0.4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Timer abbrechen von anderer Rule vor Ausführung

Beitrag von udo1toni »

Gar nicht. Oder einfach so.

Grundsätzlich haben Variablen ihre Gültigkeit nur im Kontext, in dem sie definiert wurden. Da die Variable in der rules-Datei definiert wurde, sollte sie in den anderen Dateien nicht definiert sein.
Andererseits sind Variablen, die außerhalb von Rules definiert wurden global, sollten also übergreifend gültig sein.

Mein Tipp: probiere es aus. Wenn es nicht funktioniert, packe alle Rules, die auf die Variable zugreifen müssen in eine Datei, fertig.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten