Ankündigung

Einklappen
Keine Ankündigung bisher.

Finde den Fehler in Rule mit "while and"

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

    Finde den Fehler in Rule mit "while and"

    Hallo Freunde,

    was ist hier falsch:

    Code:
    rule BadHalbWiederHoch
    when
        Item JAL_Bad_Halb received command 0 and Time cron "0 0 9-20 * * ?"
    then
        createTimer(now.plusMinutes(30)) [|
            sendCommand(JAL_OG_Bad_Links, UP)
        ]
    end
    Die Zeit-Einschränkung 9-20 Uhr wird ignoriert

    Danke

    #2
    das "and"

    Trigger (also der "when-Block") können nur geordert werden …

    Gruß,

    Thomas E.-E.
    Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

    Kommentar


      #3
      Wie müsste das dann also aussehen?

      Kommentar


        #4
        so?

        Code:
        rule BadHalbWiederHoch
        when
            Item JAL_Bad_Halb received command 0 OR
            Time cron "0 0 9-20 * * ?"
        then
            createTimer(now.plusMinutes(30)) [|
                sendCommand(JAL_OG_Bad_Links, UP)
            ]
        end
        Zuletzt geändert von teichsta; 09.04.2015, 23:09.
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Die erste Frage ist, ob Du wirklich möchtest, dass die Jalousie wirklich ausschließlich zur halben Stunde hoch fährt (cron "0 0 ..." plus createTimer). Falls nicht...
          Code:
          import org.joda.time.DateTime
          
          [FONT=Courier][SIZE=12px]rule "BadHalbWiederHoch"[/SIZE][/FONT]
          when
              Item JAL_Bad_Halb received command 0
          then
              if (now.plusHours(4).getHourOfDay > 12) {
                  createTimer(now.plusMinutes(30)) [|
                      sendCommand(JAL_OG_Bad_Links, UP)
                  ]
              }
          end
          sobald das Item getriggert wird, überprüft die if-Bedingung, ob die Zeit zwischen 9 und 20 Uhr liegt.
          Zu beachten ist, dass Du jodaTime importieren musst. Aber die benötigst Du ohnehin für CreateTimer
          Zuletzt geändert von udo1toni; 09.04.2015, 22:48.

          Kommentar


            #6
            Ich musste kurz nachdenken über die Logik... Aber ja, dass brauche ich! Danke!
            Trotzdem verstehe ich meinen Fehler noch nicht...
            "Wenn GA update UND Uhrzeit zwischen 9-20 Uhr dann..." sollte doch gehen oder nicht?

            Kommentar


              #7
              für einen UND Trigger müsstest Du den Status beider Elemente zum gleichen Zeitpunkt eintreffen. Die Wahrscheinlichkeit dafür ist = 0. Die Rule Engine ist Ereignis basiert und diese Ereignisse werden gefeuert und dann "vergessen". Damit das UND wahr werden würde, müsste in dem Augenblick, in dem Jal_Bad_Halb das command "0" empfängt auch das Cron Ereignis feuern, was vermutlich nie (bis äußerst selten) passieren dürfte.

              Klarer geworden?
              Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

              Kommentar


                #8
                Jo - jetzt habe ich es verstanden. Das hilft mir auch bei anderen Rules. Vielen Dank noch mal an Euch Beiden.

                Kommentar

                Lädt...
                X