Du kannst das natürlich auch mit den eingebauten Timern lösen. Allerdings wirst Du dann entweder eine Hashmap verwenden müssen oder sehr umständlich programmieren. Es gibt aber auch einen sehr einfachen Weg, der sich hier geradezu aufdrängt, denn es geht ja nur um einen Timeout.
Das Zauberwort heißt expiration Time (ok, zwei Worte)
Du legst eine zweite Gruppe an. Typ ist egal. Du legst pro Temperatur-Item ein Switch Item an, so dass Du jeweils Itempaare hast. Der Name des Switch Items muss sich aus dem Namen des Temperatur-Items ableiten lassen (und umgekehrt). Z.B. so:
Wohnzimmer_Temperatur (Member Deiner Temperatur-Gruppe)
Wohnzimmer_tempswitch (Member der neuen Gruppe)
Wichtig ist auch, dass die Namen konsistent aufgebaut sind, im Beispiel oben also der Raumname der identifizierende Teil ist und als erstes kommt, ohne das verwendete Trennzeichen (der Unterstrich).
Alle Switch Items bekommen als Eigenschaft einen Expiration Timer angelegt (geht über die Item Metadaten). Dabei legst Du fest, dass der Zustand des Items mittels postUpdate zu OFF wechseln soll. Commands und Updates sollen unberücksichtigt bleiben.
Nun kannst Du die Rule so aufbauen:
Code: Alles auswählen
rule "Temperatur Alarm"
when
Member of gTemperaturen changed
then
val String strPart = triggeringItem.name.split("_").get(0)
val mySwitch = gTempswitches.members.filter[i|i.name.startsWith(strPart)].head
if(mySwitch.state == OFF && (triggeringItem.state as Number).floatValue > 22) {
// Alarm-Meldung generieren
mySwitch.postUpdate(ON)
}
end
Die Rule "merkt" sich also, dass sie Alarm für das Schwesteritem gegeben hat, indem sie den Schalter auf ON setzt. Über die Expiration setzt openHAB den Status wieder zurück auf OFF.
Man kann wie gesagt mit einer Hashmap auch passende Timer anlegen und im Timer auch wieder löschen lassen, so dass die Rule auf die Existenz der Timer testen kann. Das ist aber ungleich schwerer zu programmieren (geht, aber eben nicht einfach so).
Da Items nichts kosten

sollte man sie ausgiebig nutzen.
Du kannst sogar in der UI abbilden, welche Alarme in den letzten x Minuten aktiv waren (Zeige Liste der Items aus der Gruppe gTempswitches mit dem Zustand ON).
Du kannst die Tot-Zeiten pro Item unterschiedlich setzen... und bestimmt geht noch mehr, was mir jetzt nicht einfällt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet