Ich habe ein Problem mit einem Timer, kann aber den Fehler nicht finden. Vielleicht sieht jemand anderes wo ich was falsch gemacht habe:
Also: wenn eine Lampe (Flur_2) eingeschaltet wird muss ich prüfen ob eine weitere Lampe (Flur_1) schon eingeschaltet ist oder nicht. Ist Flur_1 eingeschaltet, soll die Rule abbrechen ansonsten soll sie weiterlaufen. Die Prüfung muss mit 5 sec Zeitverzögerung nach einschalten von Flur_2 stattfinden, deshalb habe ich den Timer "tFlur_1_SICHERHEIT" gesetzt.
Soweit scheint die Rule zu funktionieren, Schau ich mir aber das Log an, zeigt sich das keine 5 sec zwischen den LogInfos liegen, die Abfrage bzw. gegebenenfalls der Abbruch finden unmittelbar nach einschalten von Flur_2 statt!
Habe ich eine Klammer falsch gesetzt?
der Teil meiner Rule mit dem Timer:
Code: Alles auswählen
var Timer tFlur_1_SICHERHEIT = null // Timervariable fuer SICHERHEIT Flur_1 definieren: Gedenksekunde VOR Abfrage Flur:1 AN ?
rule "SICHERHEIT Flur_2 Licht_AUS"
when
Item Flur2_Power changed to ON // Wenn Flur_2 AN-geschaltet wird
then
logInfo("PROD_SPEZ_klein_rules","--- SICHERHEIT--Flur_2 wurde EIN-geschaltet ---") // LogInfo
tFlur_1_SICHERHEIT?.cancel // Gedenksekunde zunächst eventuell laufende Timer entfernen
logInfo("PROD_SPEZ_klein_rules_","--- SICHERHEIT--Flur_1 Gedenksekunde fuer 5 sec gesetzt ---") // Gedenksekunde LogInfo
tFlur_1_SICHERHEIT = createTimer(now.plusSeconds(5), [| // Gedenksekunde Timer auf 5 sec anlegen
tFlur_1_SICHERHEIT = null // Gedenksekunde Timer wieder auf NULL setzen
]
)
if(Flur1_Power.state == ON) { // Abfrage ob Flur1 auch an ist, wenn ja -> Abbruch
logInfo("PROD_SPEZ_klein_rules","--- SICHERHEIT--Abbruch -> Flur_1 ist ebenfalls eingeschaltet ---") // LogInfo
return;
}
Code: Alles auswählen
2020-05-20 09:44:01.214 [INFO ] [e.model.script.PROD_SPEZ_klein_rules] - --- SICHERHEIT--Flur_2 wurde EIN-geschaltet ---
2020-05-20 09:44:01.216 [INFO ] [.model.script.PROD_SPEZ_klein_rules_] - --- SICHERHEIT--Flur_1 Gedenksekunde fuer 5 sec gesetzt ---
2020-05-20 09:44:01.224 [INFO ] [e.model.script.PROD_SPEZ_klein_rules] - --- SICHERHEIT--Abbruch -> Flur_1 ist ebenfalls eingeschaltet ---