Ankündigung

Einklappen
Keine Ankündigung bisher.

Variabler Timer in Rule

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

    Variabler Timer in Rule

    Liebe openHAB-Fans,

    ich erarbeite mir gerade die Rules... Kommend von Delphi muss ich natürlich ganz schön umdenken und manches funktioniert nicht so wie erhofft.

    In einem Timer möchte ich eine Variable übergeben, die im Interface frei einstellbar sein soll.

    Das Item sieht so aus:
    Code:
    Number    Timer_Test
    In der Sitemap steht das hier:
    Code:
    Setpoint item=Timer_Test label="Timer Flur OG [%.0f]"    step=1 minValue=1 maxValue=60
    Und meine Rule zur Zeit so (funktioniert aber nicht):
    Code:
    rule "Switchoff_Timer"
    when
      Item S_OG_Sonja_1_UL received command ON
    then
      DMX_W_OG_Corridor.sendCommand(10)
      
      if(Light_Timer==null)
      {
        // first ON command, so create a timer to turn the light off again
        Light_Timer = createTimer(now.plusSeconds(Timer_Test))
        [|
          DMX_W_OG_Corridor.sendCommand(0)  
        ]
      }
      Light_Timer = null
    end
    Wenn ich einen festen Wert bei "plusSeconds" eintrage, läufts. Wie kann ich das variabel halten?

    Vielen Dank für Euren Input,
    Ralph.

    #2
    Schau mal hier rein, vielleicht ist das ein Ansatz für dich.

    Gruß, Sigi

    Kommentar


      #3
      Perfekt, Sigi, herzlichen Dank. Einmal nicht auf Englisch gesucht...

      Wer hier drüber stolpert, für den gleich hier der funktionierende relevante Code der Rule:

      Code:
      rule "Switchoff_Timer"
      when
        Item S_OG_Sonja_1_UL received command ON
      then
        val seconds = (Timer_Test.state as DecimalType).intValue  
      
        DMX_W_OG_Corridor.sendCommand(50) /* Dimmstufe auf 50% anschalten */
        if(Light_Timer==null)
        {
          // first ON command, so create a timer to turn the light off again
          Light_Timer = createTimer(now.plusSeconds(seconds))
          [|
            DMX_W_OG_Corridor.sendCommand(0)  /* Dimmstufe auf 0% = Ausschalten */
          ]
        }
        Light_Timer = null 
      end

      Kommentar

      Lädt...
      X