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.
Timer abbrechen von anderer Rule vor Ausführung
-
- Beiträge: 70
- Registriert: 15. Nov 2021 10:02
Timer abbrechen von anderer Rule vor Ausführung
Openhabian 4.0.4
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Timer abbrechen von anderer Rule vor Ausführung
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.
Gesendet von iPad mit Tapatalk
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
-
- Beiträge: 70
- Registriert: 15. Nov 2021 10:02
Re: Timer abbrechen von anderer Rule vor Ausführung
Und wie geht das in verschiedenen rule Dateien?
Openhabian 4.0.4
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer abbrechen von anderer Rule vor Ausführung
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.
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