Ankündigung

Einklappen
Keine Ankündigung bisher.

Regel um in einem bestimmten Zeitraum etwas auszulösen

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

    Regel um in einem bestimmten Zeitraum etwas auszulösen

    Hallo Zusammen,

    ich bräuchte eine Regel, mit der ich vormittags in Abhängigkeit des Tageslichts (> 900 Lux) etwas auslöse. Unter Vormittag verstehe ich 6-12 Uhr.

    Wenn es also die Helligkeit 900 Lux überschreitet und die Uhrzeit zwischen 6 und 12 Uhr liegt, möchte ich einmalig eine Aktion auslösen.
    Also in etwa so:

    Code:
    var triggered = 0
    
    rule "Hellikeitsueberschreitung"
    
    when 
          [I]vormittag [/I]AND
          Item Helligkeit > 900 AND
          triggered = 0
    then
          triggered = 1
          do_action
    end
    Wie würdet iht "vormittag" programmiertechnisch abbilden?

    Danke & Gruß,
    thoern

    #2
    Hi,

    ich würde mit einer Hilfsvariablen - gestzt durch eine Regel arbeiten - denn cron jobs mit mehrern Stunden funtionieren nicht immer.

    Irgendwas in der Art:

    Item
    Switch Vormittag

    Rule:

    rule "nameON"
    when
    Time cron "0 0 6 * * ?"
    then
    postUpdate(Vormittag, ON)
    end

    und dann mittags:
    rule "nameOFF"
    when
    Time cron "0 0 12 * * ?"
    then
    postUpdate(Vormittag, OFF)
    end


    und dann über

    rule "Vormittag"
    when
    Item Helligkeit changed
    then
    if (Helligkeit > 900) {
    if triggered = 0 {
    triggered = 1
    do_action
    }
    }
    end


    Grüsse
    Karsten

    Kommentar


      #3
      Ich würde es so lösen (ungetestet):
      Code:
      var trigger = 0
      
      rule "vormittag"
      when  Time cron "0 0/10 6-12 * * ?"     // aller 10 Minuten 6:00 Uhr bis 12:00 Uhr
      then
          if (trigger == 0 &&  Helligkeit.state > 900)
          {   
             trigger = 1
              //do anything
          } 
      end
      Später oder Mitternacht den trigger wieder löschen.

      Holger

      Kommentar


        #4
        Oh man...
        Da hätte ich auch selbst drauf kommen können! Mal wieder den Wald vor lauter Bäumen nicht gesehen...
        Wird wohl so in etwa wie Holgers Lösung werden.

        Meine Variante hätte wohl eh nicht funktioniert, weil die when-Bedingung gar keine Variablen prüfen kann

        Danke euch beiden und Gruß,
        Thomas

        Kommentar

        Lädt...
        X