Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

- √ - Benannte Timer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - Benannte Timer

    Hi,

    gibt es eine Möglichkeit, die Timer zu benennen? Z.B. Timer_Waschkueche und Timer_Flur?
    Mein Problem ist, dass die Timer, wie sie jetzt erstellt sind, sich gegenseitig überschreiben:

    Code:
    rule "Licht Waschküche"
    when
    	Item Light_GEG_Waschkueche received command
    then
    	if(receivedCommand==ON) {
    		if(timer==null) {
    			// first ON command, so create a timer to turn the light off again
    			timer = createTimer(now.plusMinutes(10)) [|
    				sendCommand(Light_GEG_Waschkueche, OFF)
    			]
    		} else {
    			// subsequent ON command, so reschedule the existing timer
    			timer.reschedule(now.plusMinutes(5))
    		}
    	} else if(receivedCommand==OFF) {
    		// remove any previously scheduled timer
    		if(timer!=null) {
    			timer.cancel
    			timer = null
    		}	
    	}
    end
    
    rule "Licht Eingangsbereich"
    when
    	Item Light_GEG_Corridor2 received command
    then
    	if(receivedCommand==ON) {
    		if(timer==null) {
    			// first ON command, so create a timer to turn the light off again
    			timer = createTimer(now.plusMinutes(5)) [|
    				sendCommand(Light_GEG_Corridor2, OFF)
    			]
    		} else {
    			// subsequent ON command, so reschedule the existing timer
    			timer.reschedule(now.plusMinutes(3))
    		}
    	} else if(receivedCommand==OFF) {
    		// remove any previously scheduled timer
    		if(timer!=null) {
    			timer.cancel
    			timer = null
    		}	
    	}
    end

    #2
    Du deklarierst die Timer doch vor der Verwendung, wahrscheinlich im Kopf der Regeldatei. Dort gibst Du den Variablennamen an unter dem der Timer angesprochen wird, also z.B.:

    var Timer Timer_Waschkueche = null
    var Timer Timer_Flur = null

    Kommentar


      #3
      Oh, sorry, das hatte ich übersehen, dass die im Kopf deklariert wurde. Jetzt klappt es. Danke!

      Kommentar

      Lädt...
      X